关闭

策略模式Strategy

171人阅读 评论(0) 收藏 举报
分类:

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();

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:48203次
    • 积分:1268
    • 等级:
    • 排名:千里之外
    • 原创:81篇
    • 转载:5篇
    • 译文:0篇
    • 评论:0条
    说说状态
    写软件的感悟