小白将从以下几点对观察者模式进行解析
-
观察者模式引入的设计技巧
-
观察者模式的定义及类图
-
观察者模式的优缺点
-
观察者模式的应用场景
-
观察者模式实战
-
总结
零、策略模式引入的技巧
先过一遍,放入脑海中,等看完后面所有的内容,可以结合上下文进行消化
我们要做的不是看过、读过、理解过、消化过,而是需要将其平常化,使用模式就像使用变量一样简单。
- 为了交互对象之间的松耦合设计而努力
一、观察者模式的定义及类图
定义:在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新。
类图:类图中一共有四个角色,主题、观察者、具体主题、具体观察者
- 主题(Subject):主题是一个接口,该接口规定了具体主题需要实现的方法,比如,添加、删除观察者以及通知观察者更新数据的方法。
- 观察者(Observer):观察者是一个接口,该接口规定了具体观察者用来更新数据的方法。
- 具体主题(ConcreteSubject):具体主题是实现主题接口类的一个实例,该实例包含有可以经常发生变化的数据。具体主题需使用一个集合,比如ArrayList,存放观察者的引用,以便数据变化时通知具体观察者。
- 具体观察者(ConcreteObserver):具体观察者是实现观察者接口类的一个实例。具体观察者包含有可以存放具体主题引用的主题接口变量,以便具体观察者让具体主题将自己的引用添加到具体主题的集合中,使自己成为它的观察者,或让这个具体主题将自己从具体主题的集合中删除,使自己不再是它的观察者。
以下是UML类图