首页 > 代码库 > Head First Design Pattern 读书笔记(2) 观察者模式
Head First Design Pattern 读书笔记(2) 观察者模式
Head First Design Pattern 读书笔记(2) Observer Pattern 观察者模式
Observer Pattern 类图
定义
观察者模式:在对象间定义一个一对多的关系,当其中一个的对象发生改变时,所有依赖于这个对象的对象(即观察者们)都会自动更新或做执行某些行为。
几个OO的原测
- 尽量以松耦合的方式处理对象间关系–>软件工程时候学的“高內聚,低耦合”的好处
关于观察者模式
- 被观察对象通知观察者可以使用推送的方式(类图中带参数的notifyAction方法),也可以使用观察者自己获取更新的方式(类图中无参的notifyAction方法)。个人感觉后者更加灵活,因为这样被观察对象只负责通知,不用给观察者传递任何数据,观察者在更新的时候根据自己需要获取数据,并且这样就能做到异步更新了。不过上面类图有一点不好,就是具体观察者类只能继承观察者抽象类而不是实现观察者接口了。如果要用实现接口的方式,应该应该将上面的AbstractObserver类改为接口,将notifyAction()改为notifyAction(AbstractSubject a)即可。
- 很多GUI框架的事件与监听器机制都是通过观察者模式实现的。
- java有自己的观察者模式实现方法,使用java.util.Observer接口和java.util.Observable类实现。
- 被观察对象根据实现不同,通知观察者的顺序不一定按照list的顺序,最好不要在其他地方有依赖这个通知顺序的逻辑。
Head First Design Pattern 读书笔记(2) 观察者模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。