观察者模式是一种 多个观察者 观察 一个被观察者的 模式。
当被观察者的状态改变的时候,会依次通知对应的观察者。
public interface Subject{
void register(Observer observer);
void unregister(Observer observer);
void notifyObservers(Message message);
}
public interface Observer{
void update(Message message);
}
public class ObserverImpl implements Observer{
@Override
public void update(Message message){
//业务逻辑代码
xxxx
xxxx
}
}
public class SubjectImpl implements Subject{
List<Observer> observers = new ArrayList<>();
@Override
public void register(Observer observer){
observers.add(observer);
}
@Override
public void unregister(Observer observer){
observers.remove(observer);
}
@Override
public void notifyObservers(Message message){
for(Observer observer:Observers){
observer.update(message);
}
}
}
上述就是观察者模式的主要框架。
被观察者Subject中有一个Observer集合。
Observer可以通过Subject的register()和unregister()来添加和去除观察者。
当Subject中的状态发生改变的时候,可以通过其notifyObservers()方法来通知对应的观察者执行对应的业务逻辑。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_40276626/article/details/121380556
内容来源于网络,如有侵权,请联系作者删除!