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

Factory Method

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

•Фабричный метод - паттерн, порождающий классы.

Назначение

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

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

•Virtual Constructor (виртуальный конструктор).

21

Factory Method - проблема

Factory Method - решение

Factory Method - решение

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

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

•Product (Document) - продукт:

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

•ConcreteProduct (MyDocument) - конкретный продукт:

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

•Creator (Application) - создатель:

•- объявляет фабричный метод, возвращающий объект типа Product.

•Creator может также определять реализацию по умолчанию фабричного метода, который возвращает объект ConcreteProduct;

•- может вызывать фабричный метод для создания объекта Product.

•ConcreteCreator (MyApplication) - конкретный создатель:

•- замещает фабричный метод, возвращающий объект ConcreteProduct.

26

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

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

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

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

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

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

Недостатки

•Может привести к созданию больших

параллельных иерархий к лассов

, так как для каждого класса продукта надо создать свой подкласс создателя.

ПАТТЕРН ABSTRACT FACTORY

Abstract Factory

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

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

Назначение

Предоставляет интерфейс для создания семейств взаимосвязанных или взаимозависимых объектов, не специфицируя их конкретных классов.

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

Kit (инструментарий).

29

Abstract Factory - проблема

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