Перейти к основному содержимому

Паттерн "Фабричный метод" (Factory Method) в Java — создание через подклассы

Разработчику Архитектору
Теория данных (раздел 3)

Обзор — в порождающих паттернах. Здесь — Java-практика с делегированием создания подклассам.

Play ITЗагрузка интерактивного демо…


Задача паттерна

Factory Method определяет общий метод создания объекта в базовом классе, а конкретный тип продукта выбирают подклассы.

Клиент работает с абстракцией Product и не зависит от new ConcreteProduct().


Пример

Код ITЗагрузка примера кода…

ExportJob job = new PdfExportJob();
job.run("quarterly report");

Когда использовать

  • Нельзя заранее жестко зафиксировать тип создаваемого продукта.
  • Хочется расширять систему новыми продуктами без изменения клиентского кода.
  • Нужна точка расширения в библиотеке/фреймворке.

Плюсы и минусы

Плюсы:

  • меньше связности с конкретными классами;
  • проще добавлять новые продукты;
  • лучше соблюдается OCP.

Минус: растет число подклассов-фабрик.


См. также