设计模式 - 学习笔记 - 观察者模式ObserverPattern

Posted 笑虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式 - 学习笔记 - 观察者模式ObserverPattern相关的知识,希望对你有一定的参考价值。

设计模式 - 学习笔记 - 观察者模式ObserverPattern

学习总结

基本逻辑

  1. 定义发布者观察者两个接口,然后实现1个发布者n个观察者
  2. 每个观察者都实现了自己的update(msg)方法来更新数据。
  3. 发布者维护一个观察者列表,并实现一个通知方法notify()遍历列表逐个调用观察者.update方法传入msg

对比订阅发布模式

  1. 观察者模式订阅发布模式。后者对前者进一步拆分细化,将维护列表发布通知工作独立出来作为调度中心
  2. 强行解释的话:
    2.1. 订阅发布模式的表达更贴切于跨服务间的协作。如:消息队列,邮件订阅…
    2.2. 观察者模式更贴切的表达单个服务内部协作。如:更新进度条动画…

对比访问者模式

  1. 想象一下,当Element接口的实现简化为1个。
  2. Visitor接口实现N多,所以客户端维护一个Visitor列表。
  3. 当新数据产生时,我们遍历Visitor列表,调用所有访问者来访问。
  4. 是不是就完成观察者模式了?

参考资料

设计模式 - 学习笔记 - 访问者模式VisitorPattern

以上是关于设计模式 - 学习笔记 - 观察者模式ObserverPattern的主要内容,如果未能解决你的问题,请参考以下文章

设计模式 - 学习笔记 - 观察者模式ObserverPattern

设计模式 - 学习笔记 - 观察者模式ObserverPattern

Java设计模式学习笔记(观察者模式)

设计模式学习笔记-观察者模式

设计模式----观察者模式通俗实例

设计模式学习笔记:观察者模式