Java设计模式--策略模式

它也属于行为型模式的一种,在这种模式下,一个类的行为或其算法可以在运行时更改。简单实现

环境类(对外提供统一接口)

public class Context {
    private Strategy strategy;

    public void setStrategy(Strategy strategy) {
        this.strategy = strategy;
    }

    public int request(int req) {
        return state.doAction(req);
    }
}

策略接口

interface Strategy {
    int doAction(int req);
}

具体策略

public class AddStrategy implements Strategy{

    @Override
    public int doAction(int req) {
        return req + req;
    }
}

public class MultiStrategy implements Strategy{
    @Override
    public int doAction(int req) {
        return req * req;
    }
}

测试类

    public static void main(String[] args) {
        Strategy strategy= new Strategy();
        strategy.setStrategy(new AddStrategy ());
        System.out.println(context.request(10));
        strategy.setStrategy(new MultiStrategy ());
        System.out.println(context.request(10));
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、定义 策略模式是指对一系列的算法定义,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使...
    怡红快绿阅读 907评论 0 0
  • 定义 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可...
    步积阅读 776评论 0 2
  • 1.策略模式(Strategy Pattern) 分别封装行为接口,实现算法族,超类里放行为接口对象,在子类里具体...
    Mr_欢先生阅读 731评论 0 9
  • 在我们需要实现一个功能的时候,可以有多种算法来实现的时候,我们可以使用if...else或者case来选择对应的算...
    MrKing5946阅读 239评论 0 0
  • 小的时候很讨厌奶奶觉得奶奶很凶,对所有人都是有点敬而远之的感觉所以不喜欢她,甚至于跟奶奶打过架掐过奶奶的脖子...
    250迈以上的人阅读 229评论 0 0