🏭 Паттерн Factory Method
Factory Method — это порождающий паттерн, который предоставляет интерфейс для создания объектов в суперклассе, но позволяет подклассам изменять тип создаваемых объектов.
Использование
🔹 Когда тип создаваемого объекта зависит от контекста или конфигурации.
🔹 Когда нужно расширять систему новыми продуктами без правки существующего кода.
🔹 Когда создание объекта — это не просто new, а логика с условиями.
Преимущества
1️⃣ Ослабление связи между кодом и конкретными классами
При прямом вызове new вы жёстко привязаны к конкретному классу. Если его нужно заменить — придётся найти и исправить все точки создания. Фабрика убирает эту зависимость: код работает через интерфейс, конкретная реализация подставляется в одном месте.
2️⃣ Централизованное управление созданием объектов
Фабрика может содержать нетривиальную логику:
▪️ Выбор нужного класса в зависимости от условий.
▪️ Управление жизненным циклом объекта.
▪️ Применение Singleton или Object Pool внутри фабрики.
3️⃣ Расширяемость без правки существующего кода
Новый тип продукта — новый подкласс. Основной код не трогаете. Это и есть принцип Open/Closed в действии.
4️⃣ Упрощение тестирования
Фабрику можно подменить в тестах — подсунуть mock-реализацию. Это чище, чем патчить конструктор или использовать статические методы.
══════ Навигация ══════
Вакансии • Задачи • Собесы
🐸 Библиотека джависта
#CoreJava
Post #7508
2.51K

- ❤ 6
- 👍 5
- 👾 2
- 🔥 1