设计模式——观察者模式

Posted 启示

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式——观察者模式相关的知识,希望对你有一定的参考价值。

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

 

 

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

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

 

观察者模式详解

优点

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

缺点

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

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

以上是关于设计模式——观察者模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式之观察者模式

观察者模式是啥

[设计模式]观察者模式与订阅模式

设计模式-行为型模式-观察者模式

常用设计模式-----观察者模式

设计模式之行为型模式