Передовые практики программного обеспечения - установите и получите методы - PullRequest
0 голосов
/ 28 марта 2012

Я хочу осмыслить идею использования сеттеров и геттеров в суперклассе и подклассе с точки зрения передовой практики программного обеспечения.Исходя из вашего опыта, какой метод из перечисленных ниже подходит и также способствует хорошему повторному использованию программного обеспечения:

  1. объявление переменных защищенного экземпляра в суперклассе и позволить подклассу использовать их.объявление частных переменных экземпляра в суперклассе с общедоступными методами получения, чтобы позволить подклассу наследовать методы получения от суперкласса.

Ответы [ 4 ]

3 голосов
/ 28 марта 2012

Зависит от вашего стиля кодирования.Некоторые предпочитают сжатый код более подробному структурированному коду.Если вашей конечной целью является совместимость и масштабируемость, вы «безопаснее», используя геттеры / сеттеры.Еще одним преимуществом является то, что с помощью методов получения / установки вы можете выполнять несколько операций вместо одной операции, например, getUsers () может на самом деле табулировать несколько строк данных.Таким образом, вы можете консолидировать эту операцию вместо того, чтобы повторять ее в подклассах.

Используйте свое лучшее суждение.Если значения являются простыми логическими или строковыми значениями, вероятно, не нужны ag / s.Если они связаны с запросом или вносят определенные, повторяющиеся изменения в состояние или данные, используйте подход ag / s.

1 голос
/ 28 марта 2012

Я выбираю 1 в основном, когда собираюсь создать абстрактный класс.

В противном случае я всегда выбираю 2 (создание геттера / сеттера).Потому что:

  1. Мало того, что вы избежите случайного / непреднамеренного изменения переменной члена класса, это также поможет, когда вы приступите к созданию тестовых случаев jUnit для ваших классов.

  2. Разделите классы.

В любой хорошей книге по объектно-ориентированному программированию будут перечислены другие преимущества использования методов получения и установки.

1 голос
/ 28 марта 2012

Я выбираю номер 1. Это как раз та ситуация, когда существование protected оправдано. Методы получения и установки предназначены для классов, использующих другой не связанный класс.

1 голос
/ 28 марта 2012

Оба метода приемлемы. Обычно у меня есть общедоступные методы получения / установки, так как их может использовать любой, а не только подклассы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...