Паттерн проектирования Factory.

Factory method pattern (aka Factory pattern) - порождающий паттерн. Порождающие паттерны абстрагируют процесс создания объектов, скрывая реализацию создания объектов и делая процесс создания объектов системно-независимым. Паттерн Abstract Factory выше на один уровень абстракции, чем паттерн Factory, а это означает, что он возвращает фабричные классы.
Factory method pattern (Factory pattern)
Фабрика для чего? Этот паттерн возвращает один из многих подклассов. Вы должны использовать этот паттерн, если у вас есть суперкласс и определенное количество подклассов, базирующихся на тех же данных, также вы должны возвратить объект одного из подклассов. Посмотрим на пример:
теперь посмотрим на вызывающий код, который использует фабрику:
Abstract factory pattern
Этот паттерн выше на один уровень абстракции, чем abstract method, что означает, что абстрактная фабрика возвращает определенные фабричные классы, которые будут позже возвращены в виде подкласса. Посмотрим на пример:
Теперь посмотрим на абстрактную фабрику, которая возвращает один из типов ShapeFactory:
Теперь взглянем на код, который использует factory.
Вопрос:
Какова цель использования factory pattern, abstract factory pattern?
Эти паттерны возвращают объект одного из многих подклассов, но вызывающий код не знает о действительной реализации класса. Вызывающий код вызывает метод интерфейса, например Shape и использует полиморфизм для корректного вызова метода draw(). И так, как видите, фабричный паттерн уменьшает связи между вызывающим кодом и вызываемыми объектами. Это очень мощная и широкоиспользуемая черта многих фреймворков. Вам необязательно создавать новый объект Circle или Square на каждом вызове, как показано в коде, который предназначен лишь для тестовых целей.
Материалы, которые могут вас заинтересовать
- Паттерн проектирования Singleton. Варианты использования
- Шаблоны проектирования (Design Patterns) в библиотеках Java SE/EE
- Java. Вложенные классы в методах
- Java. Создание объекта вложенного класса извне внешнего класса
- Java. Создание объекта вложенного класса изнутри внешнего класса
- Java. Создание объекта вложенного класса
- Java. Создание "регулярного" вложенного класса
- Java. Вложенные классы (Inner Classes)
- Java. Создание обобщенных методов







Небольшая заметка
класс public class ShapeFactory
должен быть abstract
есть
Отправить комментарий