观察者模式

观察者设计模式

模式定义

观察者模式,定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。

顾名思义,此模式需要有观察者(Observer)和被观察者(Observable)两类角色,当Observable状态变化时会通知Observer,Observer一般会实现一类通用的接口,比如java.util.Observer,Observable需要通知Observer时,逐个调用Observer的update方法即可,Observer的处理成功与否不应该影响Observable的流程。

使用场景

一个对象(Observable)状态改变需要通知其他对象,Observer的存在不影响Observable的处理结果,Observer的增删对Observable无感知,比如kafka的消息订阅,producer发送一条消息到topic,至于是1个还是10个consumer订阅这个topicproducer是不需要关注的。

实践经验

在Spring或者SpringBoot项目中,有时候需要在Spring容器启动并加载完之后,做一些系统初始化的事情。这时候,可以配置一个观察者ApplicationListener,来达到这一目的。这就是观察者模式的实践。

@Component
public class ApplicationStartup implements ApplicationListener<ContextRefreshedEvent> {
    @Override
    public void onApplicationEvent(ContextRefreshedEv

相关推荐

  1. 观察模式 Observer

    2024-04-24 10:58:05       43 阅读
  2. 观察模式学习

    2024-04-24 10:58:05       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-24 10:58:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-24 10:58:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-24 10:58:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-24 10:58:05       20 阅读

热门阅读

  1. Linux:SSL中加密的数字证书主要内容

    2024-04-24 10:58:05       14 阅读
  2. AWS ECS Fargate 实现批量启用部署断路器

    2024-04-24 10:58:05       21 阅读
  3. ABAP MR21: BAPI_MATVAL_PRICE_CHANGE

    2024-04-24 10:58:05       17 阅读
  4. Hive 数据倾斜

    2024-04-24 10:58:05       15 阅读
  5. Tomcat 启动闪退问题解决方法

    2024-04-24 10:58:05       16 阅读
  6. 吉林省建筑工程专业技术人员职称评审实施办法

    2024-04-24 10:58:05       18 阅读