设计模式之策略模式
2018-03-15 10:59
183 查看
策略模式说白了就是,由一个公共的接口和多个不同的实现类,以及调用接口方法的调用类组合成的,该模式的优点是调用类和具体的实现类是松耦合的关系,并且在扩展接口中抽象方法的具体方法时,不需要更改调用类,只需要在增加一个实现类即可。
策略模式的结构:策略接口、具体策略(实现类)、上下文(依赖策略接口,并提供方法委托策略接口调用具体策略的方法)。
下面列举一个简单的案例:如排序算法,定义一个策略接口Strategy,接口内只有一个排序的抽象方法sort(),然后有两个具体策略(实现类),UpSortStrategy(升序排序)和DownSortStrategy(降序排序),最后是上下文(类)负责调用接口的排序方法。
策略接口:
![](//img-blog.csdn.net/20180315105708850?watermark/2/text/Ly9ibG9nLmNzZG4ubmV0L20wXzM3NjAxMTA5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
具体策略:
![](//img-blog.csdn.net/20180315105757216?watermark/2/text/Ly9ibG9nLmNzZG4ubmV0L20wXzM3NjAxMTA5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](//img-blog.csdn.net/20180315105811327?watermark/2/text/Ly9ibG9nLmNzZG4ubmV0L20wXzM3NjAxMTA5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
上下文:
策略模式的结构:策略接口、具体策略(实现类)、上下文(依赖策略接口,并提供方法委托策略接口调用具体策略的方法)。
下面列举一个简单的案例:如排序算法,定义一个策略接口Strategy,接口内只有一个排序的抽象方法sort(),然后有两个具体策略(实现类),UpSortStrategy(升序排序)和DownSortStrategy(降序排序),最后是上下文(类)负责调用接口的排序方法。
策略接口:
具体策略:
上下文:
相关文章推荐
- (学习笔记)设计模式之策略模式
- 设计模式 - 策略模式(Strategy Pattern) 具体解释
- 码农小汪-设计模式之-策略模式
- 您的设计模式——策略模式【Strategy Pattern 】
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式二——策略模式
- java设计模式与策略模式
- 设计模式-行为型模式-策略模式
- 设计模式之策略模式
- 设计模式之-策略模式(Strategy)
- Java设计模式透析--策略模式(一)
- 设计模式------------将工厂模式和策略模式结合起来
- 我的Java设计模式-策略模式
- java设计模式学习之策略模式
- 设计模式之策略模式
- 我的第一课:【设计模式】====策略模式
- C++编程思想(卷二):设计模式:策略模式
- 设计模式之策略模式-strategy
- 设计模式——策略模式
- 设计模式之策略模式-孙悟空是如何炼成的(3)