观察者模式是在被观察者状态改变的时候被动的被唤醒进行相应的处理
观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新
public class MikeObserver {
private final List<Mike> observerList = new ArrayList<Mike>();
public void addObserverList(Mike mike) {
this.observerList.add(mike);
}
public void removeObserverList(Mike mike) {
this.observerList.remove(mike);
}
public void update(int num) {
observerList.forEach(i->{
i.addSugar(num);
});
}
public static void main(String[] args) {
MikeObserver mikeObserver = new MikeObserver();
mikeObserver.addObserverList(new AppleMike());
mikeObserver.addObserverList(new PearMike());
mikeObserver.update(1000);
}
}
public interface Mike {
void addSugar(int num);
}
public class AppleMike implements Mike {
@Override
public void addSugar(int num) {
System.out.println("AppleMike现在糖量改为" + num);
}
}
public class PearMike implements Mike{
@Override
public void addSugar(int num) {
System.out.println("PearMike现在糖量改为" + num);
}
}