首页 > 代码库 > 设计模式 “续”

设计模式 “续”

观察者模式

再次申明,本文学习自 程杰 兄的 “大话设计模式” 根据书中的内容和自己的体会而来。

观察者模式也叫 发布、订阅模式,在这个模式里,一个目标物件管理所有依赖它的观察者物件,在本身状态更改时发出通知,通知将被观察者接收到。

书中用例子 炒股 来形容了这一点,在炒股的同事是观察者,依赖于前台妹子。当老板来的时候向炒股的同事发出通知,但是问题是 前台妹子与炒股的同事耦合在一起,这并不符合依赖倒置原则。所以把发布者与观察者都进行抽象,它们都依赖于抽象,这样就解开了之间的关系。

解决了依赖问题,但是新的问题又来了,因为不是所有的观察者方法名都是一样的,都叫 Update可能不是很严谨,而且在使用别人的代码的时候这些就不是你能控制的了。使用委托,把方法做为参数代入发布者的通知方法则可以解决这下问题。

这种模式通常被用在实现事件处理系统,当一个对象的改变需要同时改变其它对象,而且它不知道具体有多少对象待改变时。

设计模式 “续”