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

Abstract Factory - решение

Abstract Factory - структура

Abstract Factory - участники

AbstractFactory (WidgetFactory) - абстрактная фабрика:

- объявляет интерфейс для операций, создающих абстрактные объекты-продукты;

ConcreteFactory (Motif WidgetFactory, PMWidgetFactory) - конкретная фабрика:

- реализует операции, создающие конкретные объекты-продукты;

AbstractProduct (Window, ScrollBar) - абстрактный продукт:

- объявляет интерфейс для типа объекта-продукта;

ConcreteProduct (Mot if Window, Mot if ScrollBar) - конкретный продукт:

- определяет объект-продукт, создаваемый соответствующей конкретной фабрикой;

- реализует интерфейс Abstract Product;

Client - клиент:

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

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

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

Гарантирует сочетаемость создаваемых продуктов.

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

Выделяет код производства продуктов в одно место, упрощая поддержку кода.

Упрощает добавление новых продуктов в программу.

Реализует принцип открытости/закрытости.

Недостатки

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

Требует наличия всех типов продуктов в каждой вариации.

ПАТТЕРН BUILDER

Builder

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

Строитель - паттерн, порождающий объекты.

Назначение

Отделяет конструирование сложного объекта от его представления, так что в результате одного и того же процесса конструирования могут получаться разные представления.

36

Builder - проблема

Builder - решение

Builder - решение

Builder - решение

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