王争《设计模式之美》学习笔记
- 行为型设计模式主要解决的就是“类或对象之间的交互”问题。
- 一个行为型设计模式,也是在实际的开发中用得比较多的一种模式:观察者模式。
- 观察者模式会对应不同的代码实现方式:
- 有同步阻塞的实现方式,也有异步非阻塞的实现方式;
- 有进程内的实现方式,也有跨进程的实现方式。
原理及应用场景剖析
- 观察者模式(Observer Design Pattern)也被称为发布订阅模式(Publish-Subscribe Design Patter)。
- 在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知。
- 被依赖的对象叫作被观察者(Observable)
- 依赖的对象叫作观察者(Observer)
模板代码
public interface Subject {
void registerObserver(Observer observer);
void removeObserver(Observer observer);
void notifyObservers(Message message);
}
public interface Observer {
void update(Message message);
}
public class ConcreteSubject implements Subject {
private List<Observer> observers = new ArrayList<Observer>();
@Override
public void registerObserver(Observer observer) {
observers.add(observer);
}
@Override
public void removeObserver(