96
объекты всё равно будут
создаваться при помощи new, но делать это будет
фабричный метод. Схема нашей программы приведена на рисунке 5.2.
Рисунок 5.2 – Программа с применением паттерна
Участники Паттерна
–
Product:
Определяет интерфейс объектов, которые создает фабричный метод.
–
ConcreteProduct:
Реализует интерфейс продукта
–
Creator:
Объявляет фабричный метод, который возвращает объект типа product. Может
содержать стандартную реализацию фабричного метода. Создатель полагается на
свои подклассы, чтобы определить фабричный метод, чтобы он возвращал экземпляр
соответствующего конкретного продукта.
–
ConcreteCreator:
Переопределяет фабричный метод для возврата экземпляра ConcreteProduct.
Продукт определяет
общий интерфейс объектов, которые может произвести
создатель и его подклассы.
Конкретные продукты содержат код различных продуктов. Продукты будут
отличаться реализацией, но интерфейс у них будет общий.
97
Создатель
объявляет фабричный метод, который должен возвращать новые
объекты продуктов. Важно, чтобы тип результата совпадал с
общим интерфейсом
продуктов.
Зачастую фабричный
метод объявляют абстрактным, чтобы заставить все
подклассы реализовать его по-своему. Но он может возвращать и некий стандартный
продукт.
Конкретные создатели по-своему реализуют фабричный метод, производя те
или иные конкретные продукты. Фабричный метод не обязан всё
время создавать
новые объекты. Его можно переписать так, чтобы возвращать существующие
объекты из какого-то хранилища или кэша.
Достарыңызбен бөлісу: