知识卡片
观察者模式的定义与四个角色
内容
观察者模式定义对象间一对多依赖关系,一个对象状态改变时所有依赖它的对象都自动收到通知。 四个角色:Subject被观察者(管理观察者列表并通知);Observer观察者(定义update方法); ConcreteSubject/ConcreteObserver各自实现具体逻辑。发散:这和中介者模式都处理”一个变化 触发多方响应”,区别是观察者里被观察者不关心具体有哪些观察者,中介者则主动协调参与方。
参考来源
- 位置:《设计模式之禅(第2版)》第22章《观察者模式》(源文件:_epub-src/text/part0100.html)
- 结论依据:原文给出观察者模式定义并说明Subject、Observer、ConcreteSubject、ConcreteObserver四个角色的职责,展示Subject维护Observer列表并在notifyObservers中遍历调用each的update方法。
- 原始内容:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新……Subject被观察者……它必须能够动态地增加、取消观察者。