首页 > 其他 > 详细

Head First Design Pattern 读书笔记(2) 观察者模式

时间:2015-01-02 22:30:31      阅读:403      评论:0      收藏:0      [点我收藏+]

Head First Design Pattern 读书笔记(2) Observer Pattern 观察者模式

Observer Pattern 类图

技术分享

定义

观察者模式:在对象间定义一个一对多的关系,当其中一个的对象发生改变时,所有依赖于这个对象的对象(即观察者们)都会自动更新或做执行某些行为。

几个OO的原测

  1. 尽量以松耦合的方式处理对象间关系–>软件工程时候学的“高內聚,低耦合”的好处

关于观察者模式

  1. 被观察对象通知观察者可以使用推送的方式(类图中带参数的notifyAction方法),也可以使用观察者自己获取更新的方式(类图中无参的notifyAction方法)。个人感觉后者更加灵活,因为这样被观察对象只负责通知,不用给观察者传递任何数据,观察者在更新的时候根据自己需要获取数据,并且这样就能做到异步更新了。不过上面类图有一点不好,就是具体观察者类只能继承观察者抽象类而不是实现观察者接口了。如果要用实现接口的方式,应该应该将上面的AbstractObserver类改为接口,将notifyAction()改为notifyAction(AbstractSubject a)即可。
  2. 很多GUI框架的事件与监听器机制都是通过观察者模式实现的。
  3. java有自己的观察者模式实现方法,使用java.util.Observer接口和java.util.Observable类实现。
  4. 被观察对象根据实现不同,通知观察者的顺序不一定按照list的顺序,最好不要在其他地方有依赖这个通知顺序的逻辑。

Head First Design Pattern 读书笔记(2) 观察者模式

原文:http://my.oschina.net/u/1010578/blog/363134

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!