定义:观察者模式(发布-订阅模式),指多个对象之间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都得到通知并被自动更新。
使用场景:
结构:

注意: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