设计模式——行为型之观察者模式
将一个对象的行为通知给其他有关联的对象,让他们执行各自对应的逻辑,这种类的应对行为叫观察者模式
观察者模式将对象间交杂的逻辑解耦,使对象间的协作更加简明
观察者模式由两部分构成:
- 被观察者,也就是触发其他类变动的类
- 观察者,也就是受被观察者影响,执行应对逻辑的类
被观察者:
public class Subject {
private List<Observe> observes = new ArrayList<>();
public void registObserve(Observe observe){
observes.add(observe);
}
public void notifyAllObserve(){
observes.forEach(Observe::update);
}
}
观察者:
public class Observe {
public void update(){
System.out.println("收到变动通知,开始进行变动完成");
}
}
使用:
public static void main(String[] args) {
final Subject subject = new Subject();
subject.registObserve(new Observe());
subject.registObserve(new Observe());
subject.registObserve(new Observe());
System.out.println("前面的对象属性做了修改,开始通知一些类型的对象一同变动");
subject.notifyAllObserve();
}
前面的对象属性做了修改,开始通知一些类型的对象一同变动
收到变动通知,开始进行变动完成
收到变动通知,开始进行变动完成
收到变动通知,开始进行变动完成