首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

观察者模式(公布-订阅模式)

2012-10-09 
观察者模式(发布-订阅模式)观察者模式简介:定义:定义对象间的一对多的依赖关系,当一个对象的状态改变时,所

观察者模式(发布-订阅模式)

观察者模式简介:

定义:定义对象间的一对多的依赖关系,当一个对象的状态改变时,所有依赖于它的对象都得到通知并被自动更新。

?

使用例子:

网上商店中的商品在名称、价格发生变化时,必须自动通知会员,Java的API为我们提供了Observer接口和Observable类来实现观察者模式。
? Observable(可观察者)类允许在自身发生改变时,通知其它对象(实现接口Observer,观察者)。

?

使用java.util.Observer接口和java.util.Observable类实现观察者模式:

观察者实现Observer接口,并重写其中的update方法,供被观察者状态改变时调用。

被观察者继承Observable类,在Observable类中有增加,删除观察者类的方法,还有通知所有观察者都update的方法。状态改变时,先setChanged,再notifyObservers。

?

Observer观察者接口源码:

?

public class Test {   public static void main(String args[]){    Product product=new Product();    Observer nameobs=new NameObserver();    Observer priceobs=new PriceObserver();    ////加入观察者    product.addObserver(nameobs);    product.addObserver(priceobs);    product.setName("applet");    product.setPrice(9.22f);    }}

?

?

?

运行结果:
C:\java>java? Test
NameObserver :name changet to applet
PriceObserver :price changet to 9.22

热点排行