美文网首页Java设计模式
设计模式:15-观察者模式:Observer

设计模式:15-观察者模式:Observer

作者: 大栗几 | 来源:发表于2020-05-21 13:10 被阅读0次

文章来源本人的博客:http://codelifeliwan.github.io/ 转载请注明出处
查看[设计模式]系列内容请点击:https://www.jianshu.com/nb/45937362

定义:

定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。

理解:

观察者模式就是我们最常使用的按钮事件的模式,举例来说,我们软件上一个button,我们点击一下触发了click事件,当click时可能会触发后续的多个操作,按钮就是被依赖的对象,点击以后依赖于它的对象得到通知并做出反应,即被自动更新。

方法:

被依赖对象中维护一个依赖于它的对象列表,当某个状态改变时,调用列表中的各对象的特定方法来通知更新,依赖于它的对象需要“注册”到被依赖对象的维护列表中。

在代码演示中演示一个android最常用的OnClickListener的实现。

观察者模式有两种,一种是“推”模式,即被依赖对象改变时将各种信息推送至依赖于它的对象;还有一种是“拉”模式,即只告诉依赖于它的对象状态改变了,至于改变什么了,需要其自己去取。

适用场合:

1、 当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这二者封装于独立的对象中,使得它们可以独立地改变和复用。

2、 当一个对象的改变需要同时改变其他对象,但是具体不知道需要改变哪些对象。

结构和代码说明:

QQ截图20140630220229

相关文章

网友评论

    本文标题:设计模式:15-观察者模式:Observer

    本文链接:https://www.haomeiwen.com/subject/mdyzohtx.html