#design-patterns #observer-pattern
Вопрос:
В шаблоне наблюдателя должен ли a Subject
иметь коллекцию Observer
s, даже если мне нужен только один Observer
? У каждой схемы или приложения, которое я вижу с использованием шаблона наблюдателя, есть много Observer
s. Называется ли это Образцом наблюдателя, если он имеет только один Observer
?
Ответ №1:
Из книги ГоФ страница 295,
Любое количество объектов-наблюдателей может наблюдать за субъектом.
Вот почему в каждом примере вы видите набор наблюдателей. Субъект поддерживает более одного; однако не обязательно иметь более одного. «Любое число» включает число 1.
Ответ №2:
Да, все в полном порядке. Как и в MVC, объект на уровне фасада презентации / приложения может быть единственным объектом, который прослушивает определенный объект домена.
Помните спецификацию Субъекта и Наблюдателя — там нет упоминания о коллекции. У наблюдателя есть метод update (), а у субъекта-метод register (). Вот и все! Коллекция-это деталь реализации. 🙂