设计模式--行为型--策略模式
2012-11-23 12:05
423 查看
一、策略模式简介(Brief Introduction)
定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独 立于使用它的客户而变化二、解决的问题(What To Solve)
策略模式的重心不是如何来实现算法,而是如何组织、调用这些算法,从而让程序结构更灵活,具有更好的维护性喝扩展性三、命令模式分析(Analysis)
Strategy:策略接口,用来约束一系列具体的策略算法。Context使用这个接口来调用具体的策略实现定义的算法
ConcreteStrategy:具体的策略实现,也就是具体的算法实现
Context:上下文,负责和具体的策略类交互,通常上下文会持有一个真正的策略实现,上下文还可让具体的策略类来获取上下文的数据,甚至让具体的策略类来回调上下文的方法
四、实例代码
1、策略接口及其实现public interface Strategy { public void algorithmInterface(); }
public class ConcreteStrategyA implements Strategy { public void algorithmInterface() { System.out.println("====算法A实现===="); } }
public class ConcreteStrategyB implements Strategy { public void algorithmInterface() { System.out.println("====算法B实现===="); } }
public class ConcreteStrategyC implements Strategy { public void algorithmInterface() { System.out.println("====算法C实现===="); } }
2、上下文Context
public class Context { private Strategy strategy = null; public Context(Strategy strategy){ this.strategy = strategy; } public void contextInterface(){ this.strategy.algorithmInterface(); } }
3、客户端调用
public class Client { public static void main(String[] args) { Strategy strategyA = new ConcreteStrategyA(); Strategy strategyB = new ConcreteStrategyB(); Strategy strategyC = new ConcreteStrategyC(); Context contextA = new Context(strategyA); Context contextB = new Context(strategyB); Context contextC = new Context(strategyC); contextA.contextInterface(); System.out.println(); contextB.contextInterface(); System.out.println(); contextC.contextInterface(); } }
运行结果:
相关文章推荐
- 23种设计模式4--行为型模式(策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式)
- 【行为型模式】策略模式(Strategy)之23种java设计模式
- [设计模式笔记]三. 行为型模式--23. Strategy模式(策略)对象行为型模式(一)
- 设计模式-行为型模式-策略模式
- 行为型设计模式之模板方法(TEMPLATE METHOD)模式 ,策略(Strategy )模式
- 设计模式实战13--行为型--策略模式
- 【转】GoF23种设计模式之行为型模式之策略模式
- 设计模式——行为型模式之借助策略模式(Strategy Pattern)减少使用不必要的if-else if -else和switch-case(三)
- 设计模式之行为型模式(责任链、命令、解释器、迭代式、仲裁者、备忘录、观察者、状态、策略、模板方法、访问者)
- 设计模式(4)-行为型-策略模式(Strategy)
- 设计模式22——行为型模式之策略模式
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- GoF23种设计模式之行为型模式之策略模式
- C#面向对象模式设计第二十三讲:Startegy 策略模式(行为型模式)
- 设计模式-策略模式---Strategy(对象行为型)
- 设计模式之策略模式(一对象行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- [.net 面向对象程序设计深入](26)实战设计模式——策略模式 Strategy (行为型)
- 设计模式(2) 策略模式--行为型