• 设计模式——观察者模式


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

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

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

    观察者模式详解

    优点

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

    缺点

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

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

  • 相关阅读:
    Noip2012 开车旅行
    「NOI2018」归程
    2019.10.30 队测(晚上)
    洛谷P1138 第k小整数
    洛谷P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold
    Noip-pj2018游记
    洛谷P4994 终于结束的起点
    《退役的你》
    《膜你抄》
    洛谷P5087 数学
  • 原文地址:https://www.cnblogs.com/yang-lq/p/7698387.html
Copyright © 2020-2023  润新知