观察者设计模式,又叫发布-订阅模式,又叫模型-视图模式,行为模式的一种,定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个对象,这个主题对象在状态变化时,会通知所有观察者对象,使他们能够自动更新自己。
看着他的别名我在想RabbitMQ中的消息队列模式不是有发布-订阅模式吗,redis也模拟了这种模式,所以选择这种作为设计模式的第二种。
下面是一个简单的流程:
经典案例
MVC 模式中的Model 其实就是观察者模式中的被观察者(Subject), Model的状态变化, 都会引发View 层次的变动,而MVC的View层次自然就对应观察者模式中的观察者(Observer)
感觉观察者模式好像没什么好写的。。。