`
szgaea
  • 浏览: 213330 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

观察者模式误解-容易理解错误的地方

阅读更多
   很多文章在说明观察者模式的时候喜欢把“回调”的概念加进来,“回调”本来就不好理解,以致于造成在学习观察者模式的时候也不好理解。今天我又看了一遍观察者模式,终于醒悟过来了,明白了。
    理解观察者模式首先明白会有两个概念,观察者和被观察者,一个对象可以被多个“观察者”所观察,所以“被观察者”与“观察者”是一个一对多的关系,以致“被观察者”中会有一个“观察者”的集合,我们可以向“被观察者”中注册“观察者”。
    因要实现多个“观察者”,所以需要一个接口来把“观察者”的共性规范好,以便于让“被观察者”调用。
    则有一个Observer的接口,定义“观察者”观察到“被观察者”的改变,自己想执行的行为。
    总而言之,就是“被观察者”发生变化后,会遍历“观察者”集合,去执行“观察者”的方法
分享到:
评论
4 楼 banfry 2010-03-11  
可不可以这样理解:
被观察者:房屋A,房屋B,房屋C,房屋D。。。
观察者:  当地的119
当某个房屋起火报警器响了之后,自动通知该119
3 楼 wandou 2010-02-21  
观察者模式就是回调。在c#里面就是事件。编程的基础方法,不会就不要当程序员害人。
2 楼 jashawn 2010-01-30  
回调和观察者模式在接口形式上看起来有点像,都是把一部分逻辑封装在一个对象里,再把这个对象作为方法的参数传入。
不同的是观察者模式里被观察的对象往往和被通知的对象是聚合甚至组合关系。
而回调则和被通知者可能只有简单又浅薄的关联关系。
1 楼 thomescai 2010-01-25  
总而言之,就是“被观察者”发生变化后,会遍历“观察者”集合,去执行“观察者”的方法

相关推荐

Global site tag (gtag.js) - Google Analytics