设计模式:策略、备忘录与迭代器模式解析
1. 策略模式
1.1 策略模式概述
在选择排序算法时,多种因素会产生影响,关键在于是否要统一应用单一算法,答案是否定的。更实际的做法是依据具体情况,从多种排序算法中挑选最合适的,这就是策略模式的核心。
策略模式倡导使用多种算法解决问题,其显著特点是能在运行时透明地切换算法,客户端代码不会察觉到这种变化。例如,有两种算法,一种在处理小输入规模时表现出色,另一种在处理大输入规模时更优,那么就可以在运行时根据输入数据选择合适的算法。
1.2 现实世界示例
- 前往机场 :若想省钱且出发早,可选择公交或火车;若不介意停车费且有车,可自驾;若没车但赶时间,可乘坐出租车。这体现了在成本、时间和便利性等方面的权衡。
- 软件应用 :Python 的
sorted()和list.sort()函数就是策略模式的实例,它们接受一个命名参数key,该参数本质上是实现排序策略的函数名。
1.3 使用场景
当需要动态且透明地应用不同算法时,策略模式是理想之选。这里的不同算法指的是同一算法的不同实现,虽然结果相同,但各实现的性能和代码复杂度存在差异,如顺序搜索和二分搜索。此外,策略模式还可用于创建不同的格式化表示,以实现可移植性或动态改变数据表示。
1.4 策略模式实现
在函数并非一等公民的语言中,每个策略需在不同类
超级会员免费看
订阅专栏 解锁全文
1397

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



