其中提到“观察者”与“被观察者”。观察者如果也是被观察者的话,不可能真的“观察到被观察者”。
其实这和“只缘身在此山中”类似。
《遥远的救世主》中,当丁元英对芮小丹说:“你不知道你,所以你是你。”
一旦我们在心中起了心、动了念,想要观察、分析、判断这个世界,冲突就产生了。因为这时我们把自己放在“观察者”的位置。而相对的,与之对立的则是“我”以外的“被观察者”。
事实上,我们也处在“被观察者”当中。所以也就无从“观察”到什么。
定义 :对象间的一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于他的对象都会得到通知,并自动更新。
交互对象之间松耦合
1)观察者定义了对象之间一对多的关系
2)被观察者用一个共同的接口来更新观察者
3)观察者和被观察者用松耦合方式结合,被观察者不知道观察者的细节,只知道观察者实现了观察者接口
优点:
1)观察者与被观察者抽象耦合,容易扩展;
2)建立了一套触发机制。
缺点:
1)循环依赖会导致系统崩溃;
2)观察者太多会浪费时间。
1)定义对象之间的一对多依赖关系而不使对象紧密耦合。
2)确保当一个对象改变状态时,自动更新开放数量的从属对象。
3)一个对象应该可以通知开放式数量的其他对象。
观察者模式 vs 发布-订阅模式
观察者模式(Observer)
如何使用 Java8 实现观察者模式?(上)
如何使用 Java8 实现观察者模式?(下)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)