Шаблон наблюдателя - это два модуля или один модуль?

Можно сказать, что паттерн Observer состоит из двух модулей (может быть, это зависит от контекста)?

подумайте: Subject — это другой модуль, Observer — это другой модуль (и они связаны друг с другом. Ну, мы знаем это из шаблона).


person Rasul    schedule 07.12.2017    source источник


Ответы (1)


Паттерн наблюдателя может быть как одномодульным, так и двухмодульным. Это не конкретно так. Но шаблон наблюдателя в основном полезен, когда два связанных класса находятся в разных модулях или подсистемах. Более того, он используется для уменьшения взаимосвязи между классами и позволяет объектам взаимодействовать друг с другом, не зная классов других объектов.

введите здесь описание изображения

По моему мнению, вы уже могли изучить эту картинку. Здесь Subject и Observer — это два разных класса или модуля. Observer — это в основном абстрактный класс, а ConcreteObserverA и ConcreteObserverB реализуют метод notify() класса Observer для уведомления соответствующих наблюдателей. Точно так же класс Subject может обрабатывать методы, подобные показанным на рисунке. Класс субъекта обычно содержит информацию для уведомления наблюдателя.

Таким образом, вы можете разделить модули.

Кроме того, вы можете узнать больше о шаблоне Observer из книги Тимоти К.Летбриджа и Роберта Ланьера "Объектно-ориентированная разработка программного обеспечения".

person Upakar Paudel    schedule 07.12.2017
comment
Я тоже так думаю что есть паттерн наблюдателя это два модуля могут сказать да (ну вне зависимости от контекста)? Суть шаблона Наблюдатель в этой фразе Шаблон наблюдателя в основном полезен, когда два связанных класса находятся в разных модулях или подсистемах. - person Rasul; 07.12.2017
comment
Что ж, принципы проектирования обычно различаются, но если вам нужно быть конкретным и дать конкретный ответ, то да, верно сказать, что шаблон Observer используется в двух модулях. - person Upakar Paudel; 07.12.2017