简易观察者模式
1.发布者
import java.util.Observable;
public class Fabuzhe extends Observable {
//布置作业的状态信息字符串
private String info;
public void setHomework(String info) {
this.info=info;
System.out.println("布置的作业是"+info);
setChanged();
notifyObservers();
}
public String getInfo() {
return info;
}
}
2.订阅者
public class Dingyuezhe implements Observer {
private Observable ob;
private String name;
public Dingyuezhe(String name,Observable ob) {
this.ob = ob;
this.name=name;
ob.addObserver(this);
}
@Override
public void update(Observable o, Object arg) {
Fabuzhe fabuzhe= (Fabuzhe) o;
String s=fabuzhe.getInfo();
System.out.println(name+"得到作业信息:"+s);
}
}
3.运行代码事例
public class ObserverableTest {
public static void main(String[] args) {
Fabuzhe fabuzhe=new Fabuzhe();
Dingyuezhe dingyuezhe=new Dingyuezhe("张三",fabuzhe);
Dingyuezhe dingyuezhe2=new Dingyuezhe("李四",fabuzhe);
fabuzhe.setHomework("数学第五页第八题");
fabuzhe.setHomework("语文第一页背诵课文");
}
}
运行结果如下: 布置的作业是数学第五页第八题 李四得到作业信息:数学第五页第八题 张三得到作业信息:数学第五页第八题 布置的作业是语文第一页背诵课文 李四得到作业信息:语文第一页背诵课文 张三得到作业信息:语文第一页背诵课文
浙公网安备 33010602011771号