观察者模式

观察者模式

一 场景

       在软件开发中,有时候一个对象状态的变化,会导致其他一系列对象的状态或行为也发生变化。我们有时候甚至不知道这些随之变化的对象是谁,也不清楚有多少这样的对象。

       对于这种对象之间的联动,系统为了保持对象之间状态的一致性,可能会使各个对象之间产生一定的耦合。这样就会给系统的维护和扩展带来一些不便。

       针对上述情况,我们就可以使用观察者模式。观察者模式可以让联动的对象都依赖于抽象,而不是依赖于具体的对象,这样就使得一边对象的变化不会影响另一边的对象。

二 定义

        观察者模式定义了对象之间的一种一对多的依赖关系,当一个对象改变状态时,其相关依赖的所有对象都会得到通知并被自动更新。观察者模式是一种对象行为型模式。

三 类图

        Subject(抽象主题):抽象主题中会声明一个观察者的集合,把所有引用的观察者对象都保存在这个集合中。抽象主题同时会定义增加和删除观察者的方法。主题还会定义通知方法notice()。主题可以是接口,也可以是抽象类或者一个具体类。

                                                            ·

       ConcreteSubject

相关推荐

  1. 观察模式 Observer

    2024-03-14 00:38:04       41 阅读
  2. 观察模式学习

    2024-03-14 00:38:04       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 00:38:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 00:38:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 00:38:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 00:38:04       18 阅读

热门阅读

  1. js--构造函数

    2024-03-14 00:38:04       23 阅读
  2. 前端各框架、优缺点及应用场景

    2024-03-14 00:38:04       20 阅读
  3. Python互斥锁实例(包含超时解锁)

    2024-03-14 00:38:04       20 阅读
  4. 深入理解Spring的ApplicationContext:案例详解与应用

    2024-03-14 00:38:04       21 阅读
  5. js小知识

    2024-03-14 00:38:04       22 阅读
  6. 子查询

    2024-03-14 00:38:04       24 阅读
  7. JenKins 中的new Item各个选项应该怎选择

    2024-03-14 00:38:04       20 阅读
  8. HAProxy适配openGauss使用指导书

    2024-03-14 00:38:04       22 阅读
  9. 在Rust中,探索word到pdf的转换

    2024-03-14 00:38:04       23 阅读
  10. 英语阅读挑战

    2024-03-14 00:38:04       22 阅读
  11. 华为机试题-字符串压缩

    2024-03-14 00:38:04       21 阅读