Технология разработки программного обеспечения (вторая часть). Структурные шаблоны проектирования ПО
Содержание
- 2. 2. Структурные паттерны Описывают способы построение сложных структур из классов и объектов. Adapter Bridge Façade Composite
- 3. Паттерн Adapter (Адаптер) Цель паттерна Adapter (адаптер) – привести (адаптировать) интерфейс некоторого адаптируемого класса к интерфейсу,
- 4. Причина возникновения паттерна Проблема: имеется некоторый класс, который нужно использовать в необычной для его структуры задаче.
- 5. Причина возникновения паттерна Решение выполняется классом NetView, который агрегирует множество объектов типа IPEndPoint. Нужно выполнить графическое
- 6. Проблема в том, что класс NetView не имеет интерфейса, специфичного для объекта графической подсистемы поэтому не
- 7. Структура паттерна Adapter
- 8. Участвующие элементы Client - класс, который использует некоторые вспомогательные типы данных и ожидает, что они имеют
- 9. Приведение интерфейса выполняется за счёт того, что класс Adapter наследует оба класса Adaptee и Target значит,
- 10. Диаграмма последовательности
- 11. Альтернативный способ
- 12. Отличие от предыдущей структуры Классы Adapter и Adaptee находятся не в отношении родства, а в отношении
- 14. Основной результат использования паттерна Adapter Позволяет гибко преобразовать интерфейс некоторого класса к интерфейсу, ожидаемому приложением без
- 15. Основной результат использования паттерна Adapter (2) Увеличивает гибкость и масштабируемость создаваемых приложений за счёт модульной структуры
- 16. Пример использования паттерна Есть приложение, выполняющее управление товарооборотом предприятия; Используется тип данных Product (продукт/товар), который будет
- 17. Класс ProductXmlIOAdapter, Для записи в файл коллекции продуктов создается класс ProductXmlIOAdapter инкапсулирует коллекцию продуктов, выполняет приведение
- 18. Устранение избыточности Устранение избыточности необходимо постольку, поскольку класс Product может использоваться при приведении информации о продуктах,
- 19. Диаграмма классов, иллюстрирующая приложение
- 20. Прототип Адаптер
- 27. Паттерн Façade (Фасад) Паттерн Façade (Фасад ) применяется, когда нужно предоставить простой специализированный интерфейс к группе
- 28. Класс Db Накладывает очень простой интерфейс, специфичный для ProductData, на сложные общие интерфейсы классов из пространства
- 29. Класс DB, являющийся частным случаем Фасада – определяет политику использования System.Data. Класс DB описывает: как открыть
- 30. С точки зрения Application пространства имен System.Data вообще не существует, оно скрыто за Фасадом. Использование паттерна
- 31. Паттерн Mediator (Посредник) Например, класс QuickEntryMediator находится за сценой и привязывает текстовое поле ввода к списку.
- 32. Класс QuickEntryMediator Принимает объекты TextBox и ListBox. Предполагается, что пользователь будет вводить в TextBox префиксы строк,
- 33. Kласс QuickEntryMediator using System; using System.Windows.Forms; public class QuickEntryMediator { private TextBox itsTextBox; private ListBox itsList;
- 34. Структура класса QuickEntryMediator Конструктору экземпляра QuickEntryMediator передаются ссылки на ListBox и TextBox. QuickEntryMediator назначает обработчик события
- 35. Выводы Накладывать политику можно сверху, используя паттерн Фасад, если эта политика должна быть явной. если необходима
- 36. Заместитель и Шлюз: управление сторонними API
- 37. Паттерн Заместитель
- 67. Паттерн Bridge (мост) Цель паттерна Bridge («мост») – отделить абстракцию от её реализации, чтобы они могли
- 68. Причины возникновения паттерна Обычно, когда некоторая абстракция (обычно абстрактный класс) может иметь несколько конкретных реализаций, используют
- 69. Причины возникновения паттерна (2) Прямое наследование интерфейса абстракции некоторым конкретным классом связывает реализацию с абстракцией напрямую
- 70. Структура паттерна Bridge
- 71. Участники паттерна Bridge Abstraction (абстракция) - определяет интерфейс абстракции, а также содержит объект исполнителя, который определяет
- 72. Преимущество использование паттерна Bridge (Мост) Выполняется логическое и структурное разделение абстракции от её реализации, что делает
- 73. Пример использования паттерна Bridge Смешанный графический редактор – позволяет совместно, в рамках одного представления, редактировать растровую
- 74. Модель описанного выше приложения
- 75. Паттерн Composite (Компоновщик) Паттерн Composite (Компоновщик) – очень простой паттерн, имеющий широкое применение. Например, есть иерархия
- 76. Пример паттерна Composite (Компоновщик) В классе CompositeShape хранится список объектов типа Shape. метод Draw() в этом
- 77. Реализация класса CompositeShape public interface Shape { void Draw(); } using System.Collections; public class CompositeShape :
- 78. Составные команды Ранее рассматривались объекты Sensor и Command. Обнаружив событие, объект-датчик Sensor вызывал метод Do() ассоциированного
- 83. Скачать презентацию