什么是观察者模式
Observer模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。
Observer模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步。
实现步骤
- 创建被观察者类,继承Observable类,在想要通知观察者的地方使用
this.setChanged();this.notifyObservers();
方法通知观察者
public class Person extends Observable {
private String name;
private Integer age;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
this.setChanged();
this.notifyObservers();
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
this.setChanged();
this.notifyObservers();
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
this.setChanged();
this.notifyObservers();
}
}
- 创建观察者类,继承Observer接口并实现update方法
public class MyObserver implements Observer{
@Override
public void update(Observable o, Object arg) {
System.out.println("对象发生变化");
}
}
- 使用addObserver注册观察者
public class MainClass {
public static void main(String[] args) {
Person person = new Person();
person.addObserver(new MyObserver());
person.setName("name");
}
}