定义
策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法
- 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。
- 需要在不同情况下使用不同的策略(算法),或者策略还可能在未来用其它方式来实现。
- 对客户隐藏具体策略(算法)的实现细节,彼此完全独立
类图
策略为一个接口, 该接口定义了功能
该策略有多种不同形式的实现
实际调用时, 使用接口来调用功能, 实际实现对该调用者隐藏
- 通过某种的方式, 来确定接口的实现方式是哪一种
- 如调用者的某个属性是接口类型的, 需要传入对应的实现类
- 如根据条件直接生成实现类, 给调用者调用
总体而言, 使用策略模式是为了让一个流程通用化, 适应不同的实际情况
实际项目应用
健合项目中
- 多种数据源导入数据的实现
- 不同库的数据更新
- 不同库的数据输出
数据巡检的流程是个很经典的策略模式,采集、分析、通知三个流程都使用的策略模式来应对不同的需求