观察者模式简介
观察者模式是一种 多个观察者 观察 一个被观察者的 模式。
当被观察者的状态改变的时候,会依次通知对应的观察者。
观察者模式详解
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()方法来通知对应的观察者执行对应的业务逻辑。