Skip to content

ООП9. Объектно ориентированное проектирование. Принцип проектирования. Архитектурный домен. Шаблоны для создания прикладных классов.

Winterpuma edited this page Jul 1, 2021 · 2 revisions

Принципы проектирования

На основе полученных в ООА документов мы приходим к проектированию.

ОО нотаций достаточно много, ниже будет рассмотрена нотация Буча и Бухра – можно использовать и другие, например UML. УМЛ предлагает только набор всевозможных диаграмм и крайне избыточна – одно и тоже можно представить разными диаграммами.

Основные диаграммы нотации Буча и Бухра:

  • диаграмма класса
  • схема класса
  • диаграмма зависимостей
  • диаграмма наследований

Диаграмма класса

Диаграмма класса описывает внешнее представление данного класса.

Схема структуры класса

Схема структуры класса конкретизирует внутреннее представление и структуру класса.
Класс реализуется по слоям. Есть публичные методы, есть приватные; доступ к нижним слоям напрямую снаружи недопустим, как и вызов пабликом паблика.

Диаграмма зависимостей

Диаграмма зависимостей – схема использования

Диаграмма наследования

Диаграмма наследования – схема наследования классов. От базового класса подклассы. Внутри атрибуты и методы.

Архитектурный домен.

Архитектурный домен обеспечивает единые механизмы управления данными и всей программой как единым целым. Архитектурный домен можно реализовать как паттерн КМС.

Для архитектурного домена создаются несколько классов, задача которых – задать правила перехода из состояния в состояние при возникновении событий. Эти классы представляют активный экземпляр; все остальные будут производными от активного.

Шаблоны для создания прикладных классов

КМС делается шаблонным классом – это позволяет сделать систему гибкой. Все активные классы будут производными от активного экземпляра (АЭ). Соответственно у АЭ должен быть конструктор, в который мы передаём начальное состояние и КМС. В схему можно добавить параметр игнорирования перехода; возвращается флаг. Либо проверка происходит на уровне формирования активного класса.

Выделены пассивные и активные объекты:

  • Диаграмма пассивного класса должна включать в себя:
    • атрибуты (компоненты экземпляра),
    • аксессоры (сет и гет) (как объекта так и класса).
  • Диаграмма активного:
    • атрибуты,
    • аксессоры (как правило),
    • методы объекта (тейкеры событий) – действия, которые соответствуют состояниям в модели состояний объекта.

«Затребовать событие» - реакция на событие.

Для активных объектов выделяются жизненные циклы, а активный класс включает инициализатор КМС.

Clone this wiki locally