Child Cry
加入观察者 Dad
--------------------------------被观察者和观察者 --------------------------------
多个观察者
Dad
Mon
Dog
--------------------------------被观察者里存在观察者list --------------------------------
写死的方式,肯定不好,扩展新不好(加入新的观察者费劲),耦合程度高(观察者做出的反应不一定耦合到某一个特定的被观察者身上)

观察者 观察某一件事情(小孩哭) 做响应的处理(不确定)
Dad 喂
Mon 抱
Dog 汪
--------------------------------观察者继承同一个类复写同一个方法有不同的实现--------------------------------
观察者列表
遍历通知
观察者有前后顺序,往后传递

责任链是可以关闭的 观察者不行

具体情况 具体处理
哭的强烈程度
哭的时间
哭的地点

专门抽象出一个类,事件本身
被观察者发出一个事件 观察者消费这个事件(生产者 消费者)
--------------------------------被观察者传递事件对象--------------------------------
观察者Observer
事件源对象(被观察者) 窗口
事件对象 键盘事件
监听器(观察者)

  • 有很多时候,观察者需要很据事件的具体情况来进行处理
  • 大多数时候,我们处理事件的时候,需要事件源对象
  • 事件也可以形成维承体系

事件源->发出多个事件
观察者->一个动作应对多个事件
观察者存到事件源里面去,维持观察者的list

-----------------------------事件对象存在事件源对象-----------------------------------
-----------------------------事件对象有继承体系Source-----------------------------------

在很多系统中, Observer模式往往和责任链共同负责对于事件的处理
其中的某一个observer负责是否将事件进一步传递

相关文章:

  • 2021-12-28
  • 2021-08-11
  • 2021-05-03
  • 2021-11-08
  • 2021-12-20
  • 2021-06-23
猜你喜欢
  • 2021-09-29
  • 2021-10-07
  • 2021-12-17
  • 2022-12-23
  • 2021-11-14
  • 2021-08-31
  • 2021-06-22
相关资源
相似解决方案