Java设计模式 ->观察者模式

简介: Java设计模式 ->观察者模式

观察者模式(发布订阅):Observer(pub/sub) Pattern、行为型模式


观察者模式定义一种一对多的依赖关系,一个主题对象可以被多个观察者对象同事监听,使得主题对象状态变化时,依赖它的对象会得到通知并被自动更新。


观察者模式核心在于 观察者与被观察者解耦


观察者模式应用场景


1、当一个抽象模型包含两个方面内容,其中一个方面依赖另外一个方面

2、实现类似广播机制功能,只需分发广播,系统订阅对象自动接收。


观察者模式的优缺点


优点:


1、观察者和被观察者是松耦合的,符合依赖倒置原则


2、分离了表示层和数据逻辑层,并建立一套触发机制,使得数据变化响应到多个表示层上面


3、实现一对多的通讯机制,支持事件注册,当被观察者触发事件后,只有订阅的观察者可以接收通知。


缺点:


1、如果观察者数量过多,通知耗时


2、事件通知如果呈线性关系,如果其中一个通知处理异常,会影响后续观察者接收。


3、观察者和被观察者存在循环依赖,可能导致系统崩溃。


观察者模式源码应用


1、Google Guava

2、Spring ContextLoaderListener

相关文章
|
2月前
|
设计模式 监控 Java
Kotlin - 改良设计模式 - 观察者模式
Kotlin - 改良设计模式 - 观察者模式
56 3
|
12天前
|
设计模式 存储 供应链
前端必须掌握的设计模式——观察者模式
观察者模式(Observer Pattern)是一种行为型设计模式,实现了一种订阅机制。它包含两个角色:**观察者**(订阅消息、接收通知并执行操作)和**被观察者**(维护观察者列表、发送通知)。两者通过一对多的关系实现解耦,当被观察者状态改变时,会通知所有订阅的观察者。例如,商店老板作为被观察者,记录客户的需求并在商品到货时通知他们。前端应用中,如DOM事件注册、MutationObserver等也体现了这一模式。
|
2月前
|
设计模式 监控 Java
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
|
3月前
|
设计模式 传感器
【设计模式】观察者模式(定义 | 特点 | Demo入门讲解)
【设计模式】观察者模式(定义 | 特点 | Demo入门讲解)
54 0
|
2月前
|
设计模式 消息中间件 搜索推荐
Java 设计模式——观察者模式:从优衣库不使用新疆棉事件看系统的动态响应
【11月更文挑战第17天】观察者模式是一种行为设计模式,定义了一对多的依赖关系,使多个观察者对象能直接监听并响应某一主题对象的状态变化。本文介绍了观察者模式的基本概念、商业系统中的应用实例,如优衣库事件中各相关方的动态响应,以及模式的优势和实际系统设计中的应用建议,包括事件驱动架构和消息队列的使用。
|
2月前
|
设计模式 监控 Java
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
41 1
|
2月前
|
设计模式 Java 数据库连接
Java编程中的设计模式:单例模式的深度剖析
【10月更文挑战第41天】本文深入探讨了Java中广泛使用的单例设计模式,旨在通过简明扼要的语言和实际示例,帮助读者理解其核心原理和应用。文章将介绍单例模式的重要性、实现方式以及在实际应用中如何优雅地处理多线程问题。
42 4
|
2月前
|
设计模式 监控 Java
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
30 3
|
3月前
|
设计模式 监控 Java
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
37 9
|
3月前
|
设计模式 监控 Java
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
39 2