tgoop.com/Java_Iibrary/1335
Create:
Last Update:
Last Update:
Простое объяснение паттерна Фабрика
Вы создаёте уведомления. Сначала у вас только EmailNotification
:
new EmailNotification(to, subject, body);
Потом появляются другие типы:
Появляется дублирующийся код:
if (type.equals("email")) new EmailNotification(...)
else if (type.equals("sms")) new SMSNotification(...)
...
Проблемы:
—> Повтор кода.
—> Нарушение принципа Open/Closed.
—> Жёсткая связка с классами.
—> Сложно тестировать и расширять.
Как фабрика вас спасает
Вместо создания объектов напрямую или написания
switch/if
, вы создаёте NotificationFactory
Фабрика:
—> Скрывает логику создания
—> Решает, какой подкласс вернуть
—> Делает основной код чистым и слабо связанным
Теперь вам всё равно, как он создаётся. Вы просто запрашиваете и получаете готовый объект
Пример кода на фото