观察者模式适用场景,例如:
有多个读者在看一份报纸,当报纸内容有改动,通知各个读者。
(欢迎大家拍砖,或者提供更加鲜明生动的,更加切合自己实际项目的例子。)
以下是其Java实现:
package observer;
import java.util.Observable;
public class ObserverPatternTets {
public static void main(String[] args) {
NewsPaper np = new NewsPaper();
Reader r1 = new Reader("boy");
Reader r2 = new Reader("girl");
np.addObserver(r1);
np.addObserver(r2);
np.setContent("change");
}
}
class NewsPaper extends java.util.Observable{
private String title;
private String content;
public void setContent(String content){
this.content = content;
this.setChanged();
this.notifyObservers(this.content);
}
}
class Reader implements java.util.Observer{
private String name;
public Reader(String name){
this.name = name;
}
@Override
public void update(Observable arg0, Object arg1) {
System.out.println(this.name + " get the change: " + arg1);
}
}