После того, как полностью
или частично определены интерфейсы между
уровнями иерархии, возможна разработка
классов объектов, расположенных на каждом
из уровней. Интерфейсы, с одной стороны,
образуют спецификацию свойств объектов
нижнего уровня, а, с другой стороны, являются
механизмом виртуализации объектов. Механизм
виртуализации позволяет объектам верхнего
уровня иерархии гибко манипулировать включёнными
объектами нижнего уровня, добавляя, заменяя
или удаляя их по мере необходимости.
Интерфейсы с верхним уровнем
обычно образуют свойства абстрактного
класса, суперкласса всех классов данного
уровня (Рис. 4A.). Но вполне допустимо
постепенная реализация интерфейсов в процессе
наследования (Рис. 4B). В этом случае
подклассы реализуют те интерфейсы, которые
не были реализованы в суперклассах. Тогда
компилятор или программная система должны
проверять возможность использования конкретных
объектов в тех или иных ролях, на заданном
подмножестве интерфейсов.
|
Рис. 4. Проекция
интерфейса уровня на свойства классов
|
Развитие
интерфейса с верхним уровнем, как правило,
связано и с развитием классов нижнего
уровня. Новая функциональность определяет
направление развития классов нижнего уровня.
Но развитие классов нижнего уровня может
происходить и при неизменном интерфейсе
с верхним уровнем. Такое развитие можно
назвать вариантным, то есть, таким, когда
идёт совершенствование классов, приспособлением
их для различных требований и условий
при сохранении неизменного интерфейса.
Так, например, развитие автомобилей (транспортный
уровень) в рамках задачи перевозок, происходило
в двух направлениях повышение комфорта
при перевозке людей и повышение грузоподъемности
при перевозке грузов.
|