Я пытаюсь изучить шаблоны проектирования, и я пришел с шаблоном Observer. Я думаю, что понимаю саму концепцию, но не вижу, когда ее использовать.
Я пытаюсь объясниться. Я работаю в основном с веб-приложениями, то есть с приложениями без сохранения состояния. Обычно клиент делает петицию из браузера (например, обновить запись). то операция завершена.
Предположим, что я хочу уведомлять некоторых людей каждый раз, когда запись обновляется. Мне кажется, это идеальный сценарий для скороговорки Observer, но когда я об этом думаю, он закончится примерно так:
- пользователь подает прошение об обновлении.
- получить все лица, которые должны быть уведомлены.
- поместить всех лиц, которые должны быть уведомлены, в список наблюдателей.
- сделать обновление. (это также сделает уведомление для шаблона наблюдателя).
но... делая это таким образом, я должен повторять всех людей, которых я хочу уведомить дважды!
И поскольку это приложение без гражданства, я должен идти и получать всех людей, о которых нужно уведомлять каждый раз!
Я не знаю, является ли шаблон Observer более полезным для других типов приложений, но я могу думать об этом шаблоне только в статической форме, я имею в виду, делая Observer статическим.
Я знаю, что что-то теряю, это общепринятая и общепринятая схема, все принимают ее как правильное решение этой конкретной проблемы. Что я не понимаю?