Принципы и механизмы объектно-ориентированного проектирования

Содержание

Слайд 2

Задачи ООАП

Дизайн (результат проектирования) должен:
1) соответствовать решаемой задаче;
2) быть достаточно общим, чтобы

Задачи ООАП Дизайн (результат проектирования) должен: 1) соответствовать решаемой задаче; 2) быть
учесть возможные изменения и дополнения, а также чтобы свести к минимуму необходимость перепроектирования;
3) создавать и применять повторно используемые артефакты.

Слайд 3

Три кита ООП с точки зрения ООАП

1. Инкапсуляция:

Состояние объекта инкапсулировано, к нему

Три кита ООП с точки зрения ООАП 1. Инкапсуляция: Состояние объекта инкапсулировано,
нельзя получить непосредственный доступ, структура объекта должна быть закрыта для внешнего мира

ЕДИНСТВЕННЫЙ способ изменить внутреннее состояние объекта – послать ему запрос (выполнить его операцию).

Первый принцип
объектно-ориентированного
проектирования

Слайд 4

Три кита ООП с точки зрения ООАП

2. Полиморфизм:

Об объектах известно только то,

Три кита ООП с точки зрения ООАП 2. Полиморфизм: Об объектах известно
что сообщается в их интерфейсах.
Никакого способа получить информацию об объекте или заставить его что-то сделать в обход интерфейса просто не существует.
Интерфейс объекта ни каким образом не определяет способ его реализации.
Разные объекты могут обрабатывать сходные или одинаковые запросы абсолютно по разному.
Два объекта с одинаковыми интерфейсами могут иметь абсолютно разную реализацию.

Слайд 5

Три кита ООП с точки зрения ООАП

3. Наследование:

Наследование – механизм расширения функциональности

Три кита ООП с точки зрения ООАП 3. Наследование: Наследование – механизм
приложения путем повторного использования функциональности родительских классов.

Слайд 6

Три кита ООП с точки зрения ООАП

Механизмы повторного использования:
наследование;
композиция.

Четыре?

или

?

Три кита ООП с точки зрения ООАП Механизмы повторного использования: наследование; композиция. Четыре? или ?

Слайд 7

Наследование vs Композиция

Наследование позволяет определить реализацию одного класса в терминах другого. Такое

Наследование vs Композиция Наследование позволяет определить реализацию одного класса в терминах другого.
повторное использование называют прозрачным или белым ящиком (white-box reuse). Этим самым подчеркивается, что реализация предка известна потомкам.
Композиция: новая функциональность получается за счет совместной работы объединения или кооперации объектов. Для композиции требуется, чтобы объекты-участники имели строго определенные интерфейсы, а детали реализации скрываются. Этот способ называется черным ящиком (black-box reuse).

Слайд 8

Наследование

Достоинства и недостатки
Определяется статически на этапе компиляции.
Проще поддерживать, так как оно

Наследование Достоинства и недостатки Определяется статически на этапе компиляции. Проще поддерживать, так
напрямую реализуется через язык программирования.
Упрощается задача модификации существующей реализации.
Нельзя изменить унаследованную реализацию во время исполнения, так как она определяется на этапе компиляции.
Родительский класс по крайней мере частично определяет реализацию своих подклассов. Таким образом наследование НАРУШАЕТ инкапсуляцию.

Слайд 9

Композиция

Достоинства и недостатки
Доступ к объектам осуществляется только через их интерфейсы, следовательно,

Композиция Достоинства и недостатки Доступ к объектам осуществляется только через их интерфейсы,
не нарушается инкапсуляция.
Во время исполнения один объект можно всегда заменить другим, если он имеет тот же тип.
При реализации объекта в первую очередь кодируются его интерфейсы, следовательно зависимость от реализации снижается.
Каждый класс в этом случае инкапсулирует только свое поведение. Классы становятся небольшими и не разрастаются до неуправляемых размеров
Дополнительная работа по компоновке объектов.
Требуется тщательное проектирование интерфейсов, чтобы один объект можно было использовать со множеством других.

Слайд 10

Наследование vs Композиция

Композицию стоит предпочитать наследованию.

Второй принцип
объектно-ориентированного
проектирования

Наследование vs Композиция Композицию стоит предпочитать наследованию. Второй принцип объектно-ориентированного проектирования

Слайд 11

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

Паттерн (шаблон) проектирования – это описание взаимодействия объектов и классов, адаптированное

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

Слайд 12

Что относится к паттернам?

Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы

Что относится к паттернам? Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж.
объектно-ориентированного проектирования. Паттерны проектирования.
Ларман К. Применение UML и шаблонов проектирования (второе или более позднее издание)
Фаулер М. Архитектура корпоративных программных приложений.

GoF

GRASP

Архитектурные решения

Слайд 13

Главные детали паттерна

Имя – ключевое слово (словосочетание), с помощью которого можно быстро

Главные детали паттерна Имя – ключевое слово (словосочетание), с помощью которого можно
описать ситуацию = проблема+решение+последствия.
Задача (проблема) – описание того, когда следует применять паттерн.
Решение – описание того, как проблема может быть решена в обобщенных терминах.
Результаты (последствия, плюсы и минусы) – хорошее и плохое, типично возникающее в результате применения паттерна.

Слайд 14

Неглавные детали паттерна

Пример проблемы.
Особенности реализации.
Связанные паттерны: разновидности, частные случаи, паттерны, которые решают

Неглавные детали паттерна Пример проблемы. Особенности реализации. Связанные паттерны: разновидности, частные случаи,
похожую задачу, альтернативные решения, применяемые или те, в которых применяется данный паттерн.

Слайд 15

Паттерны GRASP (К. Ларман)

файл Распределение обязанностей.ppt

Паттерны GRASP (К. Ларман) файл Распределение обязанностей.ppt
Имя файла: Принципы-и-механизмы-объектно-ориентированного-проектирования.pptx
Количество просмотров: 52
Количество скачиваний: 0