zoukankan      html  css  js  c++  java
  • 设计模式——观察者模式

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

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

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

    观察者模式详解

    优点

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

    缺点

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

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

  • 相关阅读:
    杭电1466------简单的dp
    hdu2037-----------贪心, 活动安排问题
    两个钟表问题。
    杭电HDU1042(有点坑的高精度)
    hd1496---->这道题是水水的数论吗?
    LightOJ::1077 -----奇妙的最大公约数
    并查集练兵场
    欧拉函数
    位运算---水题
    矩阵快速幂
  • 原文地址:https://www.cnblogs.com/yang-lq/p/7698387.html
Copyright © 2011-2022 走看看