JAVA_IIBRARY Telegram 1335
image_2025-04-22_06-02-27.png
578.5 KB
Простое объяснение паттерна Фабрика

Вы создаёте уведомления. Сначала у вас только EmailNotification:

new EmailNotification(to, subject, body);


Потом появляются другие типы:

SMSNotification
PushNotification
SlackNotification
WhatsAppNotification

Появляется дублирующийся код:

if (type.equals("email")) new EmailNotification(...)
else if (type.equals("sms")) new SMSNotification(...)
...


Проблемы:

—> Повтор кода.

—> Нарушение принципа Open/Closed.

—> Жёсткая связка с классами.

—> Сложно тестировать и расширять.

Как фабрика вас спасает

Вместо создания объектов напрямую или написания switch/if, вы создаёте NotificationFactory

Фабрика:

—> Скрывает логику создания

—> Решает, какой подкласс вернуть

—> Делает основной код чистым и слабо связанным

Теперь вам всё равно, как он создаётся. Вы просто запрашиваете и получаете готовый объект

Пример кода на фото 😊

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM



tgoop.com/Java_Iibrary/1335
Create:
Last Update:

Простое объяснение паттерна Фабрика

Вы создаёте уведомления. Сначала у вас только EmailNotification:

new EmailNotification(to, subject, body);


Потом появляются другие типы:

SMSNotification
PushNotification
SlackNotification
WhatsAppNotification

Появляется дублирующийся код:

if (type.equals("email")) new EmailNotification(...)
else if (type.equals("sms")) new SMSNotification(...)
...


Проблемы:

—> Повтор кода.

—> Нарушение принципа Open/Closed.

—> Жёсткая связка с классами.

—> Сложно тестировать и расширять.

Как фабрика вас спасает

Вместо создания объектов напрямую или написания switch/if, вы создаёте NotificationFactory

Фабрика:

—> Скрывает логику создания

—> Решает, какой подкласс вернуть

—> Делает основной код чистым и слабо связанным

Теперь вам всё равно, как он создаётся. Вы просто запрашиваете и получаете готовый объект

Пример кода на фото 😊

👉 Java Portal

BY Java Portal | Программирование


Share with your friend now:
tgoop.com/Java_Iibrary/1335

View MORE
Open in Telegram


Telegram News

Date: |

The visual aspect of channels is very critical. In fact, design is the first thing that a potential subscriber pays attention to, even though unconsciously. Telegram Channels requirements & features Co-founder of NFT renting protocol Rentable World emiliano.eth shared the group Tuesday morning on Twitter, calling out the "degenerate" community, or crypto obsessives that engage in high-risk trading. Telegram offers a powerful toolset that allows businesses to create and manage channels, groups, and bots to broadcast messages, engage in conversations, and offer reliable customer support via bots. To view your bio, click the Menu icon and select “View channel info.”
from us


Telegram Java Portal | Программирование
FROM American