设计模式之Observer
基本概念
观察者模式中有最基本的两个角色:Observable和Observer。涉及到的基本操作有:
- Observable在Observer中订阅,要接受消息。
- Observable取消注册(或者Observer将其删除)。
- Observer有了消息之后通知Observable。
总的来看还是比较简单的。Observer中保存所有的Observable,然后在需要通知的时候调用notifyObservers来实现。下面是观察者模式的类图:
对于java中的观察者模式框架下面给出一个例子:
import java.util.Observable;
import java.util.Observer;
class Watched extends Observable{
public void count(int num){
for(; num >= 0; num--){
setChanged();
notifyObservers(num);
}
}
}
class Watchter implements Observer{
@Override
public void update(Observable o, Object arg) {
System.out.println("Observer get:"+(Integer)arg);
}
}
public class Test {
public static void main(String[] arg){
Watched watched = new Watched();
Watchter watcher = new Watchter();
watched.addObserver(watcher);
watched.count(10);
}
}