码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式——观察者模式

时间:2017-10-20 11:50:14      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:详解   nbsp   自动   行为型模式   关系   比较   uri   多个   post   

  观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。

 

技术分享

 

常见的例子是关注各种公众号,收听广播什么的。被观察者只有一个,观察者可以有多个,当被观察者发生变化时会告诉观察者,观察者根据需要作出相应的动作。

其中关键的是被观察者类,在当中要定义如何添加、删除观察者(也可以搞一个管理器,用来管理这些操作,这样被观察者也可以是多个)。

 

观察者模式详解

优点

解除耦合,让耦合的双方都依赖于抽象,从而使得各自的变换都不会影响另一边的变换。

缺点

在应用观察者模式时需要考虑一下开发效率和运行效率的问题,程序中包括一个被观察者、多个观察者,开发、调试等内容会比较复杂,而且在Java中消息的通知一般是顺序执行,那么一个观察者卡顿,会影响整体的执行效率,在这种情况下,一般会采用异步实现。

java.util包里面已经给我们现成的观察者接口和被观察者类,直接可以拿来用。还有一点要注意的是观察者模式和事件驱动模型的区别。

设计模式——观察者模式

标签:详解   nbsp   自动   行为型模式   关系   比较   uri   多个   post   

原文地址:http://www.cnblogs.com/yang-lq/p/7698387.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!