设计模式解析:观察者、策略、状态与单例模式
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 方法进行排序。为了更好地理解策略模式,我们以桌面壁纸管理器为例。当将图
观察者等四种设计模式解析与应用
超级会员免费看
订阅专栏 解锁全文
1877

被折叠的 条评论
为什么被折叠?



