SYSTEM ATLASЗагрузка материала

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

Factory Method

Делегирует выбор создаваемого класса подклассам или реализации фабрики.

Простыми словами

Например, базовый импортёр определяет процесс, но подкласс решает, какой parser создать для CSV или JSON. Создание объекта расширяется без переписывания алгоритма. Поэтому принцип используют как проверочный вопрос при изменении кода - иначе небольшая новая функция начинает требовать правок во множестве несвязанных мест.

Пример от @Vibeclakr

Пример при разработке

Базовый импортёр определяет процесс, но подкласс решает, какой parser создать для CSV или JSON. Создание объекта расширяется без переписывания алгоритма.

Это редакционный пример применения, а не часть определения или доказательство концепции.

Механизм действия

Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.

Пример в работе

Нерабочий подход

Использовать решение без учета его условий применимости и компромиссов.

Системный подход

Сопоставить проблему, контекст и ограничения с назначением концепции.

Ограничения

«Фабричный метод» объясняет только часть происходящего в области «Архитектура ПО». Сам принцип не говорит, насколько сильным будет эффект в вашем случае, и не заменяет измерения. При другом масштабе, среде или временном горизонте результат может отличаться.

Источник

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. 1994. ISBN 9780201633610.

Первоисточник