Head First设计模式之观察者(Observer)模式(二)

                    小白将从以下几点对观察者模式进行解析

  • 观察者模式引入的设计技巧

  • 观察者模式的定义及类图

  • 观察者模式的优缺点

  • 观察者模式的应用场景

  • 观察者模式实战

  • 总结

零、策略模式引入的技巧

  先过一遍,放入脑海中,等看完后面所有的内容,可以结合上下文进行消化

  我们要做的不是看过、读过、理解过、消化过,而是需要将其平常化,使用模式就像使用变量一样简单。

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

 

一、观察者模式的定义及类图

  定义:在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新。

  类图:类图中一共有四个角色,主题、观察者、具体主题、具体观察者

  1.   主题(Subject):主题是一个接口,该接口规定了具体主题需要实现的方法,比如,添加、删除观察者以及通知观察者更新数据的方法。
  2.   观察者(Observer):观察者是一个接口,该接口规定了具体观察者用来更新数据的方法。
  3.   具体主题(ConcreteSubject):具体主题是实现主题接口类的一个实例,该实例包含有可以经常发生变化的数据。具体主题需使用一个集合,比如ArrayList,存放观察者的引用,以便数据变化时通知具体观察者。
  4.   具体观察者(ConcreteObserver):具体观察者是实现观察者接口类的一个实例。具体观察者包含有可以存放具体主题引用的主题接口变量,以便具体观察者让具体主题将自己的引用添加到具体主题的集合中,使自己成为它的观察者,或让这个具体主题将自己从具体主题的集合中删除,使自己不再是它的观察者。

  以下是UML类图

  

猜你喜欢

转载自www.cnblogs.com/Shock-W/p/9316250.html