概述
In the context of the Strategy pattern there exist multiple variants for one algorithm where one variant is chosen to be executed at runtime.
策略模式是指一个算法的多种实现,并且在运行阶段只有一个算法被选中执行。
比如:在一个方法里面查询根据标识查询指定的数据表。这种的缺点在于代码耦合性高,不符合开闭原则,因为当新增一个查询的时候,需要修改代码,增加else if.
策略模式三要素
1.同一种类型的解决办法,都是查询数据,只是根据条件不同,查询指定的数据
2.操作类(Context),用来使用策略实现类的引用
3.具体的策略实现类
使用策略模式优化上面代码
使用Context存储Realization of Strategy
业务代码优化结果:
策略模式优化后优缺点
优点是符合开闭原则,耦合性降低了。代码逻辑更清晰。扩展的时候,新增实现类就好了。
缺点是客户端需要知道所有的实现类,并把他存储起来(目前的缺点,其他方式不一定要存储)。
GitHub Code Respository of This Article
参考资料
Object-Oriented Design Patterns explained using practical examples