设计模式笔记-观察者模式
设计模式 观察者模式 文章目录 设计模式 观察者模式 抽象 解释 自定义观察者模式 上述代码存在的问题 测试一下 官方的实现 完善实现 观察者模式指的是一系列对象之间存在一对多的依赖关系,一旦某个对象的状态改变,其余对象就会立刻接收到相应的通知。 抽象 一些对象当作可观察者,而另一些对象当作观察者。为了在文字上做一些区别,可以将 可观察者 称为 主题 。 解释 一对多的依赖关系不仅仅指一个 主题 可以有多个 观察者 ,还包括一个 观察者 可以订阅多个 主题 。 只有当 主题 的状态改变的时候,并且期望 推送 通知的时候才会通知 观察者 。这种 期望推送 的设计用来避免频繁的推送消息给观察者。 自定义观察者模式 假设有一个书店,顾客可以订阅该书店,如果该书店有新书到了顾客就会收到通知。 这里,书店就是一个 主题 ,顾客就是 观察者 。 为了遵循 针对接口编程,而非实现 的设计原则,需要先设计两个接口 Subject , Observer 。其中, Subject 具有注册观察者,取消注册观察者,通知观察者的行为。 Observer 具有利用主题推送的信息来更新自己的行为。 public interface Subject { void registerObserver ( Observer observer ) ; void unregisterObserver ( Observer