-
Notifications
You must be signed in to change notification settings - Fork 0
ООП9. Объектно ориентированное проектирование. Принцип проектирования. Архитектурный домен. Шаблоны для создания прикладных классов.
На основе полученных в ООА документов мы приходим к проектированию.
ОО нотаций достаточно много, ниже будет рассмотрена нотация Буча и Бухра – можно использовать и другие, например UML. УМЛ предлагает только набор всевозможных диаграмм и крайне избыточна – одно и тоже можно представить разными диаграммами.
Основные диаграммы нотации Буча и Бухра:
- диаграмма класса
- схема класса
- диаграмма зависимостей
- диаграмма наследований
Диаграмма класса описывает внешнее представление данного класса.
Схема структуры класса конкретизирует внутреннее представление и
структуру класса.
Класс реализуется по слоям. Есть публичные методы, есть приватные; доступ к нижним слоям напрямую снаружи недопустим, как и вызов пабликом паблика.
Диаграмма зависимостей – схема использования
Диаграмма наследования – схема наследования классов. От базового класса подклассы. Внутри атрибуты и методы.
Архитектурный домен обеспечивает единые механизмы управления данными и всей программой как единым целым. Архитектурный домен можно реализовать как паттерн КМС.
Для архитектурного домена создаются несколько классов, задача которых – задать правила перехода из состояния в состояние при возникновении событий. Эти классы представляют активный экземпляр; все остальные будут производными от активного.
КМС делается шаблонным классом – это позволяет сделать систему гибкой. Все активные классы будут производными от активного экземпляра (АЭ). Соответственно у АЭ должен быть конструктор, в который мы передаём начальное состояние и КМС. В схему можно добавить параметр игнорирования перехода; возвращается флаг. Либо проверка происходит на уровне формирования активного класса.
Выделены пассивные и активные объекты:
-
Диаграмма пассивного класса должна включать в себя:
- атрибуты (компоненты экземпляра),
- аксессоры (сет и гет) (как объекта так и класса).
-
Диаграмма активного:
- атрибуты,
- аксессоры (как правило),
- методы объекта (тейкеры событий) – действия, которые соответствуют состояниям в модели состояний объекта.
«Затребовать событие» - реакция на событие.
Для активных объектов выделяются жизненные циклы, а активный класс включает инициализатор КМС.