Паттерн "Фабричный метод" (Factory Method) в Java — создание через подклассы
Модель и масштаб — Основы БД, опорные темы, проектирование БД, пакетная работа. Карта — о разделе.
Обзор — в порождающих паттернах. Здесь — Java-практика с делегированием создания подклассам.
Play ITЗагрузка интерактивного демо…
Задача паттерна
Factory Method определяет общий метод создания объекта в базовом классе, а конкретный тип продукта выбирают подклассы.
Клиент работает с абстракцией Product и не зависит от new ConcreteProduct().
Пример
Код ITЗагрузка примера кода…
ExportJob job = new PdfExportJob();
job.run("quarterly report");
Когда использовать
- Нельзя заранее жестко зафиксировать тип создаваемого продукта.
- Хочется расширять систему новыми продуктами без изменения клиентского кода.
- Нужна точка расширения в библиотеке/фреймворке.
Плюсы и минусы
Плюсы:
- меньше связности с конкретными классами;
- проще добавлять новые продукты;
- лучше соблюдается OCP.
Минус: растет число подклассов-фабрик.