Child Cry
加入观察者 Dad
--------------------------------被观察者和观察者 --------------------------------
多个观察者
Dad
Mon
Dog
--------------------------------被观察者里存在观察者list --------------------------------
写死的方式,肯定不好,扩展新不好(加入新的观察者费劲),耦合程度高(观察者做出的反应不一定耦合到某一个特定的被观察者身上)
观察者 观察某一件事情(小孩哭) 做响应的处理(不确定)
Dad 喂
Mon 抱
Dog 汪
--------------------------------观察者继承同一个类复写同一个方法有不同的实现--------------------------------
观察者列表
遍历通知
观察者有前后顺序,往后传递
责任链是可以关闭的 观察者不行
具体情况 具体处理
哭的强烈程度
哭的时间
哭的地点
专门抽象出一个类,事件本身
被观察者发出一个事件 观察者消费这个事件(生产者 消费者)
--------------------------------被观察者传递事件对象--------------------------------
事件源对象(被观察者) 窗口
事件对象 键盘事件
监听器(观察者)
- 有很多时候,观察者需要很据事件的具体情况来进行处理
- 大多数时候,我们处理事件的时候,需要事件源对象
- 事件也可以形成维承体系
事件源->发出多个事件
观察者->一个动作应对多个事件
观察者存到事件源里面去,维持观察者的list
-----------------------------事件对象存在事件源对象-----------------------------------
-----------------------------事件对象有继承体系Source-----------------------------------
在很多系统中, Observer模式往往和责任链共同负责对于事件的处理
其中的某一个observer负责是否将事件进一步传递