Иллюстрированный самоучитель по Java



              

Модульность - часть 2


Кроме методов доступа рекомендуется создавать проверочные

is-методы,

возвращающие логическое значение

true

или

false

. Например, в класс

Master

можно включить метод, проверяющий, задано ли имя хозяина:

public boolean isEmpty(){

return name == null ? true : false; 

}

и использовать этот метод для проверки при доступе к полю

Name

, например:

if (masterOl.isEmpty()) masterOl.setName("Иванов");

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

зацепление

(low coupling) между классами. Тогда структура программы сильно упрощается. Кроме того, такие классы удобно использовать как строительные блоки для построения других программ.

Напротив, члены класса должны активно взаимодействовать друг с другом, как говорят, иметь тесную функциональную

связность

(high cohestion). Для этого в класс следует включать все методы, описывающие поведение моделируемого объекта, и только такие методы, ничего лишнего. Одно из правил достижения сильной функциональной связности, введенное Карлом Ли-берхером (Karl J. Lieberherr), получило название

закон Деметра.

Закон гласит: "в методе т() класса А следует использовать только методы класса А, методы классов, к которым принадлежат аргументы метода т(), и методы классов, экземпляры которых создаются внутри метода m ().

Объекты, построенные по этим правилам, подобны кораблям, снабженным всем необходимым. Они уходят в автономное плавание, готовые выполнить любое поручение, на которое рассчитана их конструкция.

Будут ли закрытые члены класса доступны его наследникам? Если в классе

Pet

написано

private Master person;

то можно ли использовать

sharik.person

? Разумеется, нет. Ведь в противном случае каждый, интересующийся закрытыми полями класса

А

, может расширить его классом

B

, и просмотреть закрытые поля класса




Содержание  Назад  Вперед