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