观察者模式
观察者模式:
在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖他的对象都会收到通知。
OO原则:
为交互对象之间的松耦合设计而努力。
书中例子:
先定义了主题以及观察者接口,主题的主要接口有添加、删除、通知观察者的功能,一般还有个onChange()状态的方法。而观察者一般只有update()方法。在文中,还涉及到了“推”跟“拉”的方法。推的意思是:一次性把所有被更新的数据都传送给观察者,显然这有点累赘;而拉指的则是更新时候主题把自己作为参数之一(可以有另外一个参数),让观察者自行判断主题的类型,然后调用主题暴露给它的一些方法进行所需要的数据的获取。
心得:
这一章中针对接口编程的想法更加强烈:将主题以及观察者都抽象化了,以至于主题在添加删除通知观察者的时候不用在乎观察者的内部实现,这也遵循了松耦合设计的原则。