Интерфейсы между смежными
уровнями иерархии являются ключевым звеном
в сложных системах. При разработке проекта
сверху вниз верхний уровень определяет
тот интерфейс, который должен быть реализован
нижним уровнем. При разработке снизу вверх
нижний уровень декларирует тот интерфейс,
который он может предоставить верхнему
уровню.
Серьёзность подхода к разработке
интерфейса, соединяющего два уровня, обусловлена
тем, что изменение интерфейса потребует
внесения изменений в реализацию на каждом
из смежных уровней. Хорошо продуманный
интерфейс, наоборот исключает необходимость
в синхронном внесении изменений и позволяет
вести разработку каждого уровня независимо
от других уровней. В свою очередь, отсутствие
потребности в синхронизации работы различных
групп разработчиков значительно ускоряет
работу над проектом, снижает конфликтность
в коллективе и делает работу каждого разработчика
наиболее удобной и комфортной.
Интерфейс уровней иерархии
сложной системы можно рассматривать в
качестве механизма взаимной виртуализации.
Одни и те же элементы нижнего уровня могут
входить во многие контейнеры верхнего
уровня, и контейнер верхнего уровня может
включать различные элементы нижнего уровня.
Таким образом, межуровневый интерфейс
является тем механизмом, который обеспечивает
необходимую для модернизации и развития
системы гибкость.
С другой стороны, межуровневый
интерфейс представляет собой спецификацию,
которая описывает минимально необходимый
функционал нижнего уровня. Фактически,
совокупность межуровневых интерфейсов
представляют собой важную часть документации
по описанию архитектуры системы.
|