Фабричный метод

Содержание

Слайд 2

Назначение паттерна

Когда надо применять паттерн:
Заранее неизвестно, объекты каких типов необходимо создавать
Система должна

Назначение паттерна Когда надо применять паттерн: Заранее неизвестно, объекты каких типов необходимо
быть независимой от процесса создания новых объектов, а также быть расширяемой: можно легко вводить новые классы, объекты которых надо создавать
Когда создание новых объектов необходимо делегировать из базового класса классам наследникам
Делегирование — когда часть работы класс "перекладывает" на другие классы.

Слайд 3

Общее описание

Фабричный метод (Factory Method) - это паттерн, который определяет интерфейс для

Общее описание Фабричный метод (Factory Method) - это паттерн, который определяет интерфейс
создания объектов некоторого класса, но непосредственное решение о том, объект какого класса создавать происходит в подклассах.
В момент создания наследники могут определить, какой класс создавать.

Слайд 4

UML Диаграмма

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

UML Диаграмма Product — определяет интерфейс объектов, создаваемых абстрактным методом ConcreteProduct —
Product
Creator — объявляет фабричный метод, возвращающий объект типа Product. Может вызывать фабричный метод для создания объекта типа Product.
ConcreteCreator — переопределяет фабричный метод таким образом, чтобы он создавал и возвращал объект класса ConcreteProduct.

Слайд 5

Реализация паттерна C#

Абстрактный класс Product определяет интерфейс класса, объекты которого надо создавать
Конкретные

Реализация паттерна C# Абстрактный класс Product определяет интерфейс класса, объекты которого надо
классы ConcreteProductA и ConcreteProductB  представляют реализацию класса Product. 
Абстрактный класс Creator определяет абстрактный фабричный метод FactoryMethod(), который возвращает объект Product.
Конкретные классы ConcreteCreatorA и ConcreteCreatorB - наследники класса Creator, определяющие свою реализацию метода FactoryMethod(). 

Слайд 6

Реализация паттерна C#

Для каждого конкретного класса продукта определяется свой конкретный класс создателя.
Класс

Реализация паттерна C# Для каждого конкретного класса продукта определяется свой конкретный класс
Creator делегирует создание объекта Product своим наследникам. А классы ConcreteCreatorA и ConcreteCreatorB могут самостоятельно выбирать какой конкретный тип продукта им создавать. 

Слайд 7

Последствия применения паттерна

Применение паттерна позволяет использовать в коде программы не конкретные классы,

Последствия применения паттерна Применение паттерна позволяет использовать в коде программы не конкретные
а манипулировать абстрактными объектами на более высоком уровне. 

Слайд 8

Достоинства и недостатки

Паттерн позволяет сделать код создания объектов более универсальным, не привязываясь

Достоинства и недостатки Паттерн позволяет сделать код создания объектов более универсальным, не
к конкретным классам (ConcreteProduct), а оперируя лишь общим интерфейсом (Product), а также позволяет установить связь между параллельными иерархиями классов.
Недостатком же является необходимость создавать наследника Creator для каждого нового типа продукта (ConcreteProduct).
Имя файла: Фабричный-метод.pptx
Количество просмотров: 22
Количество скачиваний: 0