Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Паттерны (3).pptx
Скачиваний:
25
Добавлен:
22.03.2023
Размер:
5.4 Mб
Скачать

Builder - структура

Паттерн Builder - участники

Builder (TextConverter) - строитель:

- задает абстрактный интерфейс для создания частей объекта Product;

ConcreteBuilder(ASCIIConverter,TeXConverter,TextWidgetConverter)-конкретный строитель:

- конструирует и собирает вместе части продукта посредством реализации интерфейса Builder;

- определяет создаваемое представление и следит за ним;

- предоставляет интерфейс для доступа к продукту (например, GetASCI IText,GetTextWidget);

Director (RTFReader) - распорядитель:

- конструирует объект, пользуясь интерфейсом Builder;

Product (ASCIIText, TeXText, TextWidget) - продукт:

- представляет сложный конструируемый объект. ConcreteBuilder строит внутреннее представление продукта и определяет процесс его сборки;

- включает классы, которые определяют составные части, в том числе интерфейсы для сборки конечного результата из частей.

42

Builder

Следующая диаграмма взаимодействий иллюстрирует взаимоотношения строителя и распорядителя с клиентом.

43

Builder – преимущества и недостатки

Преимущества

Позволяет создавать продукты пошагово.

Позволяет использовать один и тот же код для создания различных продуктов.

Изолирует сложный код сборки продукта от его основной бизнес-логики.

Недостатки

Усложняет код программы из-за введения дополнительных классов.

Клиент будет привязан к конкретным классам строителей, так как в интерфейсе директора может не быть метода получения результата.

СТРУКТУРНЫЕ

ПАТТЕРНЫ

Структурные паттерны

В структурных паттернах рассматривается вопрос о том, как из классов и объектов образуются более крупные структуры

Adapter

Bridge

Composite

Decorator

Façade

Flyweight

Proxy

ПАТТЕРН ADAPTER

Adapter

Название и классификация паттерна

Адаптер - паттерн, структурирующий классы и объекты.

Назначение

Преобразует интерфейс одного класса в интерфейс другого, который ожидают клиенты. Адаптер обеспечивает совместную работу классов с несовместимыми интерфейсами, которая без него была бы невозможна.

Известен также под именем

Wrapper (обертка).

48

Adapter - проблема

Adapter - решение

Соседние файлы в папке Лекции