文章来源本人的博客:http://codelifeliwan.github.io/ 转载请注明出处
查看[设计模式]系列内容请点击:https://www.jianshu.com/nb/45937362
定义:
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
理解:
观察者模式就是我们最常使用的按钮事件的模式,举例来说,我们软件上一个button,我们点击一下触发了click事件,当click时可能会触发后续的多个操作,按钮就是被依赖的对象,点击以后依赖于它的对象得到通知并做出反应,即被自动更新。
方法:
被依赖对象中维护一个依赖于它的对象列表,当某个状态改变时,调用列表中的各对象的特定方法来通知更新,依赖于它的对象需要“注册”到被依赖对象的维护列表中。
在代码演示中演示一个android最常用的OnClickListener的实现。
观察者模式有两种,一种是“推”模式,即被依赖对象改变时将各种信息推送至依赖于它的对象;还有一种是“拉”模式,即只告诉依赖于它的对象状态改变了,至于改变什么了,需要其自己去取。
适用场合:
1、 当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这二者封装于独立的对象中,使得它们可以独立地改变和复用。
2、 当一个对象的改变需要同时改变其他对象,但是具体不知道需要改变哪些对象。