49、设计模式解析:观察者、策略、状态与单例模式

观察者等四种设计模式解析与应用

设计模式解析:观察者、策略、状态与单例模式

1. 观察者模式

观察者模式的核心在于将被观察的代码与执行观察的代码分离。当我们改变被观察对象的属性时,所有附加的观察者都会收到通知并做出相应反应。

例如:

# 假设 i 是被观察对象,c1 和 c2 是观察者
c2 = ConsoleObserver(i)
i.attach(c1)
i.attach(c2)
i.product = "Gadget"

i.product 被改变时, c1 c2 都会输出相应信息。这一模式的优势在于我们可以轻松添加不同类型的观察者,如将数据备份到文件、数据库或互联网应用中。若不使用该模式,我们需要在每个属性中编写代码来处理各种可能的情况,这会使代码难以维护,添加新的监控功能也会变得困难。

2. 策略模式

策略模式是面向对象编程中抽象概念的常见体现。它为一个问题提供多种不同的解决方案,每个方案封装在不同的对象中,客户端代码可以在运行时动态选择最合适的实现。

2.1 策略模式示例

排序算法是策略模式的典型例子,如快速排序、归并排序和堆排序等,它们各有特点,适用于不同的输入规模、输入顺序和系统要求。

在 Python 中,我们通常使用内置的 sorted 函数或 list.sort 方法进行排序。为了更好地理解策略模式,我们以桌面壁纸管理器为例。当将图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值