一、定义
当一个对象的状态发生变化时,能通知关联的其他对象,自动刷新状态
二、类图
三、代码
首先,要实现两个接口
Observer和Observable, 工作流程:
实现前者的,需要重写update方法,当后者变化时,就会回调update方法,当实现后者的对象创建时,需要调用addObserver方法,把回调方法注册上才会执行
public class Main {
public static void main(String[] args) {
ChangableData changableData = new ChangableData();
changableData.addObserver(new NotifyA());
changableData.addObserver(new NotifyB());
changableData.setAge(19);
}
}
public class ChangableData extends Observable {
int age;
public void setAge(int age) {
this.setChanged();
// 这里必须设置setChanged,调用后者才会生效
this.notifyObservers();
this.age = age;
}
}