Письмо 06 - Разработка сложной системы
Разработка классов внутри уровня

После того, как полностью или частично определены интерфейсы между уровнями иерархии, возможна разработка классов объектов, расположенных на каждом из уровней. Интерфейсы, с одной стороны, образуют спецификацию свойств объектов нижнего уровня, а, с другой стороны, являются механизмом виртуализации объектов. Механизм виртуализации позволяет объектам верхнего уровня иерархии гибко манипулировать включёнными объектами нижнего уровня, добавляя, заменяя или удаляя их по мере необходимости.

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

Рис. 4. Проекция интерфейса уровня на свойства классов

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

Сайт Alexus Software Development