11.7设计模式-策略模式-详解
2018-11-18 本文已影响0人
205蚁
设计模式-策略模式
- 策略模式详解
- 策略模式在android中的实际运用
1.策略模式详解
1.概念
定义一系列的算法,把他们一个个封装起来,并且他们可以相互替换。
本模式使得算法可独立于使用它的客户而变化。
大量if else ,增加更加难以维护
2.使用场景
一个类定义了多种行为,并且这个类的行为在这个方法中以多个条件语句的形式出现,那么可以使用策略模式避免在类中使用大量的条件语句。
3.UML结构图分析
图:
思路:通过一个持有Context的上下文对象,来封装一系列算法,Context对象并不负责决定使用哪个算法,而是把我们的算法选择工作交给了client端,client选择好之后设置到Context中,让Context去持有算法策略,
4.实际代码分析
图
Context 。set、get方法,持有策略对象引用
接口AbstractStrategy:抽象方法 int calculatePrice(int km);
5.策略模式的优缺点
1.上下文(Context)和具体策略(ContextStrategy)是松耦合关系。
2.策略模式满足 开-闭原则