Java设计模式--------策略模式
2016-04-09 23:45
344 查看
第一次写博客好鸡冻啊。
Android菜鸟一只,希望大家支持啊。。。今天看了大话设计模式,就把上面的策略模式写了一遍。大牛们不要见笑哈,有误导小伙伴的地方希望小伙伴们积极指出。
入正题:策略模式(Strategy):它定义了算法家族,分别封装起来,让他们之间相互替换,此模式让算法的变化不会影响到使用算法的客户。
基本上策略模式关系到三个类:
Context:Context上下文,用一个ConcreteStrategy来配置,维护一个对Strategy对象的引用。
Strategy:它定义了算法家族,分别封装起来,让他们之间相互替换,此模式让算法的变化不会影响到使用算法的客户端。
ConcreteStrategy:具体算法,封装了具体算法的行为。
下面是三个类具体的代码:
Context:
Strategy:
(当然具体算法的实现可以有很多种)
打印执行结果:
Android菜鸟一只,希望大家支持啊。。。今天看了大话设计模式,就把上面的策略模式写了一遍。大牛们不要见笑哈,有误导小伙伴的地方希望小伙伴们积极指出。
入正题:策略模式(Strategy):它定义了算法家族,分别封装起来,让他们之间相互替换,此模式让算法的变化不会影响到使用算法的客户。
基本上策略模式关系到三个类:
Context:Context上下文,用一个ConcreteStrategy来配置,维护一个对Strategy对象的引用。
Strategy:它定义了算法家族,分别封装起来,让他们之间相互替换,此模式让算法的变化不会影响到使用算法的客户端。
ConcreteStrategy:具体算法,封装了具体算法的行为。
下面是三个类具体的代码:
Context:
public class Context { private Strategy strategy; public Context(Strategy strategy) { this.strategy = strategy; } // 上下文接口 public void contextInterface() { strategy.AlgorithmInterface(); } }
Strategy:
public abstract class Strategy { //算法方法 public abstract void AlgorithmInterface(); }ConcreteStrategyA:
(当然具体算法的实现可以有很多种)
public class ConcreteStrategyA extends Strategy { @Override public void AlgorithmInterface() { // TODO Auto-generated method stub System.out.println("具体算法实现......A"); } }下面来看看客户端具体的实现:
public class Main { private static Context context; public static void main(String[] args) { context = new Context(new ConcreteStrategyA()); context.contextInterface(); context = new Context(new ConcreteStrategyB()); context.contextInterface(); context = new Context(new ConcreteStrategyC()); context.contextInterface(); } }
打印执行结果:
具体算法实现......A
具体算法实现......B
具体算法实现......C
相关文章推荐
- 我理解的--java 单例模式
- 我理解的--java工厂模式
- 我理解的--java建造者模式
- 我理解的--java组合模式
- 我理解的--java门面模式
- 我理解的--java策略模式
- 我理解的--java模板方法模式
- 我理解的--java观察者模式
- 我理解的--java备忘录模式
- 我理解的--java中介者模式
- 从赵本山的小品联想到的Java设计模式
- JAVA设计模式学习第三天 设计模式之Chain of Responsibility——项目篇
- 学习:java设计模式—工厂模式
- 设计模式----简单工厂模式
- Java设计模式 创建模式-工厂模式(Factory)
- Java设计模式 创建模式-原型模式(Prototype)
- Java设计模式 创建模式-生成器模式(Builder)
- Java设计模式 创建模式-单态模式(Singleton)
- Java设计模式 结构模式-适配器模式(Adapter)