设计模式阅读备忘笔记-策略模式
2017-09-21 10:55
274 查看
设计模式阅读备忘笔记-策略模式
1、策略模式(Strategy)策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响使用算法的客户。
结构如下
abstract class Strategy { // 算法抽象 public abstract void AlgorithmInterface(); } class ConcretesStrategyA : Strategy { public override void AlgorithmInterface() { //实现算法A } } class ConcretesStrategyB : Strategy { public override void AlgorithmInterface() { //实现算法B } }
还需要一个对外接口
//对外接口,不变 class Context { Strategy strategy; //用一个具体算法对象来配置Strategy public Context(Strategy strategy) { this.strategy = strategy; } //对外具体算法接口 public void ContextInterface() { strategy.AlgorithmInterface(); } }
如何调用
//外部调用例子 class SomeWhere { public void DoSomeThing() { Context context; //调用算法A context = new Context(new ConcretesStrategyA()); context.ContextInterface(); //调用算法B context = new Context(new ConcretesStrategyB()); context.ContextInterface(); } }
总结:降低了耦合度,外部调用只需要通过Context接口,且接口和调用方始终保持不变,当算法改变时,Context和调用方都不需要发生变化。
相关文章推荐
- 设计模式阅读备忘笔记-装饰模式
- 设计模式阅读备忘笔记-中介者模式
- 设计模式阅读备忘笔记-原则
- 设计模式阅读备忘笔记-代理模式
- 设计模式阅读备忘笔记-组合模式
- Head First 设计模式(1)- 策略模式 笔记
- 《Head First 设计模式》学习笔记:策略模式与观察者模式
- 设计模式学习笔记--策略模式
- 设计模式笔记(三)—— 策略模式
- 设计模式之策略模式-笔记
- Head First 设计模式 阅读笔记(一)
- 设计模式学习笔记--Strategy 策略模式
- 设计模式学习笔记(一):策略模式
- 设计模式之策略模式——极客学院学习笔记
- 设计模式笔记 22. Strategy 策略模式(行为型模式)
- java/android 设计模式学习笔记(17)---策略模式
- 《Head First 设计模式》阅读笔记 (零)
- 【HeadFirst 设计模式学习笔记】1.策略模式
- C++设计模式学习笔记三:策略模式
- 设计模式之策略模式--慕课网笔记