观察者模式

1 单观察者模式

只有一个观察者。

只有一个观察者的时候,会对类的继承关系进行简化。

在主题中定义一个接口,这即时主题约定的和观察者的回调。

主题中只需要保存一个观察者即可,主题需要提供接口让观察者注册自己。

一般情况下观察者实现主题定义的接口,然后把自己注册给主题。

 

2 多观察者模式

多个观察者,既然是观察者,那么就应该是观察者主动。观察者主动将自己注册给自己所感兴趣的主题。所以,观察者对象中保存了到主题对象的引用。

因为需要管理多个观察者,所以,主题对象中有观察者对象的引用列表。

主题和观察者基类是一套的,因为它们需要约定回调函数,比如update。也就是说,回调函数是主题类控制的。

 

posted @ 2017-02-23 21:11  PhoenixTree(梧桐树)  阅读(140)  评论(0编辑  收藏  举报