策略模式Strategy

原创 2015年11月19日 11:13:26

1、定义一个抽象的类abstract class 类名 然后里面定义一个抽象策略

Abstract void 方法名

例如

public abstract class Strategy {

// 算法方法

public abstract void AlgorithmInterface();

}

2、写子类继承父类,实现各自的算法,例如

public class ConcreteStrategyA extends Strategy{

    @Override
    public void AlgorithmInterface() {
        System.out.println("算法A实现");
    }

}

3、写一个类似于工厂类的东西,定义为策略类,赋值,调用接口,例如:

public class Context {
    Strategy strategy;

    public Context(Strategy strategy) {
        this.strategy = strategy;
    }
    
    public void ContextInterface(){
        strategy.AlgorithmInterface();
    }
}

4、在用的时候(即调用时,实例化具体子类即可,调用的是同一个方法)

            Context context;
            //算法A
           Strategy strategyA = new ConcreteStrategyA();
            context = new Context(strategyA);
             context.ContextInterface();

版权声明:本文为博主原创文章,未经博主允许不得转载。

浅谈JAVA设计模式之——策略模式(Strategy)

一、概述 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。 二、适用性 1.许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为...
  • l1028386804
  • l1028386804
  • 2015年05月09日 14:02
  • 1830

我所理解的设计模式(C++实现)——策略模式(Strategy Pattern)

每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。 而策略模式就是对算法进行包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通...
  • LCL_data
  • LCL_data
  • 2013年08月24日 10:59
  • 12657

与spring结合的策略模式

策略模式是23种设计模式之一,客户端通过制定多个算法并且封装,使得不同场景可以使用不同的策略算法。使得程序降低了耦合提高代码的复用性。接下来通过一个简单的实例来说明在实战中如何使用(即使是业务逻辑也是...
  • nethackatschool
  • nethackatschool
  • 2017年04月05日 18:58
  • 1296

strategy策略模式源码

  • 2010年02月23日 14:25
  • 3KB
  • 下载

策略模式(Strategy)

  • 2012年06月05日 11:39
  • 2KB
  • 下载

策略模式Strategy

  • 2014年06月13日 08:35
  • 15KB
  • 下载

策略模式(strategy model)小实例一个

  • 2015年02月03日 11:02
  • 6KB
  • 下载

每天感悟总结-策略模式Strategy

  • 2009年03月10日 09:59
  • 4KB
  • 下载

【Java设计模式】(2)策略模式Strategy

  • 2015年01月06日 09:58
  • 8KB
  • 下载

走进设计模式之 策略模式(Strategy)

  • 2014年04月13日 15:14
  • 7KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:策略模式Strategy
举报原因:
原因补充:

(最多只允许输入30个字)