[b]定义:[/b]
在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新
[b]角色:[/b]
[list]
[*]主题(可观察者)
[*]观察者
[/list]
[b]可自己实现观察者模式,也可利用JDK内置的支持实现。这个比较简单:[/b]
主题(可观察者):java.util.Observable类
观察者:java.util.Observer接口
[b]主题(可观察者)要如何送出通知?[/b]
1.继承java.util.Observable类
2.需要以下两个步骤:
2.1先调用setChanged()方法,标记状态已经改变的事实
2.2再调用两种notifyObservers()方法中的一种。
notifyObservers()
notifyObservers(Object arg)
[b]如何将对象变成观察者?[/b]
1.每一个观察者必须实现java.util.Observer接口,让自己成为观察者
2.调用addObserver()方法
[b]观察者如何接收通知?[/b]
在实现的Observer中update(Observable o, Object obj)即可
Observable o:让观察者知道是哪个主题通知它
Object obj:这正是上面notifyObservers()传入的数据
在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新
[b]角色:[/b]
[list]
[*]主题(可观察者)
[*]观察者
[/list]
[b]可自己实现观察者模式,也可利用JDK内置的支持实现。这个比较简单:[/b]
主题(可观察者):java.util.Observable类
观察者:java.util.Observer接口
[b]主题(可观察者)要如何送出通知?[/b]
1.继承java.util.Observable类
2.需要以下两个步骤:
2.1先调用setChanged()方法,标记状态已经改变的事实
2.2再调用两种notifyObservers()方法中的一种。
notifyObservers()
notifyObservers(Object arg)
[b]如何将对象变成观察者?[/b]
1.每一个观察者必须实现java.util.Observer接口,让自己成为观察者
2.调用addObserver()方法
[b]观察者如何接收通知?[/b]
在实现的Observer中update(Observable o, Object obj)即可
Observable o:让观察者知道是哪个主题通知它
Object obj:这正是上面notifyObservers()传入的数据