Способствует ли паттерн «центр уведомлений» хорошему или плохому дизайну программы?

Способствует ли паттерн «центр уведомлений» хорошему или плохому дизайну программы?
Способствует ли паттерн «центр уведомлений» хорошему или плохому дизайну программы? - nci @ Unsplash

Я бы не стал говорить, что это поощряет плохое программирование

Но его легко можно использовать не по назначению.

А в чем, собственно, идея?

Источник уведомления только делает свое уведомление. Он не делает предположений о существовании потенциальных наблюдателей или чего-либо еще. Наблюдатель регистрируется для уведомлений, для обработки которых он предназначен. Наблюдатель не делает никаких предположений о том, сколько существует потенциальных источников для уведомлений, которые он может обрабатывать.

Это способ добиться инъекции зависимостей, не требуя, чтобы источники знали наблюдателей, а наблюдатели знали источники. Однако, чтобы вся система работала, необходимо подключить правильных наблюдателей для правильных уведомлений, и эта система даже уязвима к опечаткам, поскольку ее нельзя проверить во время компиляции.

Самая большая опасность, конечно, в том, что кто-то воспользуется этим, чтобы сделать тонны объектов глобально доступными для 1-1 вызовов.

Рекомендую посмотреть эти видео для лучшего погружения в вопрос:

Прикрепленное видео 1 - Ratchet & Clank: Up Your Arsenal. Совершенство любой ценой. История серии, часть 3

Прикрепленное видео 2 - Как создать серверный код с помощью PHP


LetsCodeIt, 27 мая 2023 г., 03:57

Похожие посты