Чеклист по правильному ООП

Чтобы самостоятельно оценить качество своей работы, проверьте ее соответствие нижеизложенным критериям.

Level one:
1.1 Все поля - private, методы - методы - public, присутствуют get/setter'ы, конструкторы, если надо - метод print(). (многое из этого Eclipse может сгенерировать автоматически - см. меню "source")
1.2 Совокупность всех полей класса логически относится к одному объекту. Например, в классе "телефон" поля: модель, год выпуска, масса, диагональ экрана - все вместе характеризуют "одну штуку" - один "телефон". Если создать 10 объектов - у нас автоматически получится 10 "моделей", 10 "годов выпуска", 10 "диагоналей" и т.д.
1.3 Поля класса характеризуют объект данного класса - а не какого-то другого. Например, в классе "телефон" не должно быть поля с домашним адресом его владельца.
1.4 Любой нестатический метод класса производит операции над this - текущим объектом данного класса. Если Ваш метод никак не работает с this - то он либо должен быть статическим, либо его тут быть не должно. Пример: метод распечатки массива объектов данного класса на экране.

Level two:

2.1 Один класс - один .java-файл.
2.2 Класс должен предусматривать повторное использование. Продумайте возможность использования Вашего класса в будущем в какой-нибудь другой своей программе без его переделывания. В частности - не помещайте взаимодействие с пользователем ни в какие классы кроме тех, которые специально для этого взаимодействия разрабатывались. Другой пример - не помещайте в класс "внешние" для него операции, специфические для данной программы (скажем в хранящем "телефоны" Vector'е не надо делать "поиск телефонов с диагональю экрана больше заданной").
2.3 Помните об эффективности используемых структур данных: хранение информации в массивах и поиск по ним путем полного перебора может быть неприемлемо медленным!

Comments