概述
Strategy Pattern,即策略模式。它能让你定义一系列算法,并将每种算法分别放入独立的类中,以使算法的对象可以相互替换。属于行为型设计模式。
避免使用多重分支的if else、switch语句。
适用场景
假如系统中有许多类,而它们的区别仅仅在于它们行为的不同。
一个系统需要动态地在几种算法中选择一个。
需要屏蔽算法的规则。
概念结构图
样例
样例1
算法接口:
具体的算法1:
具体的算法2:
上下文 -(持有算法实例):
客户端:
样例2
使用枚举封装算法。
样例3
算法接口:
具体的算法1:
具体的算法2:
具体的算法3:
算法工厂:
客户端: