Triggor

Follow My Heart
  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

Head First - 02.观察者模式(Observer)

Posted on 2011-06-20 01:00  triggor  阅读(156)  评论(0编辑  收藏  举报

观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖着都会收到通知,并自动更新。

 设计原则:

为了交互对象之间的松耦合设计而努力。

松耦合的设计之所以能让我们建立有弹性的OO系统,能够应对变化,是因为对象之间的互相依赖降到了最低。

要点:

  • 观察者模式定义了对象之间一对多的关系
  • 主题Subject用一个共同的接口来更新观察者
  • 观察者和可观察者之间用松耦合方式结合(loosecoupling) ,可观察者不知道观察者的细节,只知道观察者实现了观察者接口
  • 使用此模式时,可从被观察者处推(push)或拉(pull)数据(然而,推的方式被认为更“正确”)
  • 有多个观察者时,不可以依赖特定的通知次序