定义:在对象之间定义一对多的
依赖,这样一来,当一个对象改变状态,依赖他的对象都会收到通知并自动更新;
应用到的oo原则:为交互对象之间的松耦合设计而努力。
java API有内置的观察者模式。java.util包内包含基本的Observer接口和Observable类!观察者和被观察者之间的交互是由被观察者向观察者推送形式实现的。
应用
一个软件系统常常要求在某一个对象的状态发生变化的时候,某些其他的对象做出相应的改变。做到这一点的设计方案有很多,但是为了使系统能够易于复用,应该选择低耦合度的设计方案。减少对象之间的耦合有利于系统的复用,但是同时设计师需要使这些低耦合度的对象之间能够维持行动的协调一致,保证高度的协作。观察者模式是满足这一要求的各种设计方案中最重要的一种。
在程序中,我们需要在某些数据变化时,其他的类做出一些响应,我们总不能开一个线程,每隔一段时间就去检测数据有没有发生变化吧,那样效率很低,我们更希望那些具有变化属性的类能够主动将自己的变化推送给,希望检测这些变化的其他类。正如我们去医院排队,不能隔两分钟就去问大夫“轮到我了吗”,而是坐在那里等大夫的通知,大家都接收到一个名字信号,叫到谁谁就去~ 而观察者就是这样一种模式,大夫的名单就是被观察者,也叫做一个 主题。每一个病人就是一个观察者。因而,观察者模式也叫做 发布订阅模式
阅读(1103) | 评论(0) | 转发(0) |