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

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

##Observer Pattern 类图 观察者模式类图java

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

##几个OO的原测异步

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

##关于观察者模式server

  1. 被观察对象通知观察者可使用推送的方式(类图中带参数的notifyAction方法),也可使用观察者本身获取更新的方式(类图中无参的notifyAction方法)。我的感受后者更加灵活,由于这样被观察对象只负责通知,不用给观察者传递任何数据,观察者在更新的时候根据本身须要获取数据,而且这样就能作到异步更新了。不过上面类图有一点很差,就是具体观察者类只能继承观察者抽象类而不是实现观察者接口了。若是要用实现接口的方式,应该应该将上面的AbstractObserver类改成接口,将notifyAction()改成notifyAction(AbstractSubject a)便可。
  2. 不少GUI框架的事件与监听器机制都是经过观察者模式实现的。
  3. java有本身的观察者模式实现方法,使用java.util.Observer接口和java.util.Observable类实现。
  4. 被观察对象根据实现不一样,通知观察者的顺序不必定按照list的顺序,最好不要在其余地方有依赖这个通知顺序的逻辑。
相关文章
相关标签/搜索