动机
- 在软件构建过程中,我们需要为某些对象建立一种通知依赖关系:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使得软件不能很好的抵御变化
定义
- 定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生变化时,所有依赖它的对象都得到通知并自动更新
要点
- 使用面向对象的抽象,观察者模式使得我们可以独立地改变目标与观察者,从而使二者之间的依赖关系达至松耦合
- 目标发送通知时,无需指定具体的观察者,通知(可以携带信息作为参数)会自动传播
- 观察者自己决定是否需要订阅通知,目标对此一无所知
- 观察者模式是基于事件的UI框架中非常常用的设计模式,也是MVC模式的一个重要组成部分