设计模式(2)——观察者模式

本文介绍了观察者模式的基本概念,通过类图展示了其结构,并详细解释了该模式的应用场景及其优缺点。观察者模式适用于需要多个对象同步更新的情况,能够实现Subject和Observer之间的松耦合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 定义

    The Observer Pattern defines a one-to-many dependency between objects so that when one object changes state, all of its dependents are notified and updated automatically. (观察者模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新)

 

2. 类图及描述

3. 应用场景及优缺点

    观察者模式的应用场景:

(1)  对一个对象状态的更新,需要其他对象同步更新,而且其他对象的数量动态可变。

(2)  对象仅需要将自己的更新通知给其他对象而不需要知道其他对象的细节。

    观察者模式的优点:

(1)  Subject和Observer之间是松偶合的,分别可以各自独立改变。

(2)  Subject在发送广播通知的时候,无须指定具体的Observer,Observer可以自己决定是否要订阅Subject的通知。

(3)  遵守大部分GRASP原则和常用设计原则,高内聚、低偶合。

    观察者模式的缺陷:

(1)  松偶合导致代码关系不明显,有时可能难以理解。
(2)  如果一个Subject被大量Observer订阅的话,在广播通知的时候可能会有效率问题。(毕竟只是简单的遍历)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值