定义:观察者模式(发布-订阅模式),指多个对象之间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都得到通知并被自动更新。
使用场景:
结构:
注意:Java已经实现了观察者模式
我们利用Java实现的接口,做如下一个例子,我有两个同学,我的手机号修改了,通知到同学去修改。
例子:
public class MyInfo extends Observable {
private String telNum;
public String getTelNum() {
return telNum;
}
public void setTelNum(String telNum) {
this.telNum = telNum;
}
public void updateTelNum(String telNum){
super.setChanged();
super.notifyObservers(telNum);
this.telNum=telNum;
}
}
public class Studen1 implements Observer {
@Override
public void update(Observable o, Object arg) {
System.out.println("学生1收到了修改信息,改为"+arg);
}
}
public class Studen2 implements Observer {
@Override
public void update(Observable o, Object arg) {
System.out.println("学生2收到了修改信息,改为"+arg);
}
}
测试代码:
public static void main(String[] args) throws InterruptedException, CloneNotSupportedException {
Observable observable=new MyInfo();
observable.addObserver(new Studen1());
observable.addObserver(new Studen2());
((MyInfo) observable).updateTelNum("12345678");
}
原文:https://www.cnblogs.com/javammc/p/14961422.html