策略模式
2026/8/24小于 1 分钟
策略模式
定义一系列算法,将每一个算法封装起来,使它们可以相互替换,算法独立于使用它的客户而变化。
定义与使用场景
定义:针对同一类型操作,将复杂多样的处理方式分离开来,有选择地实现各自特有的操作。
使用场景:
- 同一类型问题的多种处理方式,仅具体行为有差别
- 需要安全封装多种同一类型的操作
- 同一抽象多个子类,且需要用 if-else / switch-case 选择时
优点与缺点
优点:
- 结构清晰、使用简单直观
- 耦合度低、扩展方便
- 操作封装彻底、数据更安全
缺点:策略增加时子类会变得繁多。
本质
分离算法:根据相同的行为抽象做不同的具体策略实现。
实际应用
在 Android 中,ListAdapter 的不同实现(ArrayAdapter、RecyclerView.Adapter 等)可视为策略的体现;动画插值器 Interpolator 也常通过策略方式切换不同算法。