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("语文第一页背诵课文"); } }
运行结果如下: 布置的作业是数学第五页第八题 李四得到作业信息:数学第五页第八题 张三得到作业信息:数学第五页第八题 布置的作业是语文第一页背诵课文 李四得到作业信息:语文第一页背诵课文 张三得到作业信息:语文第一页背诵课文