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