策略模式——分离算法的设计模式

来源:互联网 发布:日系淘宝店铺推荐 编辑:程序博客网 时间:2024/05/01 06:50

角色构成:

context:用来操作策略的上下文环境

public class ContextStragety {    CalculatorStragety strategy;    public void setStrategy(CalculatorStragety strategy) {        this.strategy = strategy;    }    public int calculate(int a) {        return strategy.calculate(a);    }}

Stragety:策略的抽象

public interface CalculatorStragety {    int calculate(int a);}

ConcreateStragety:具体的策略实现

public class FirstStragety implements CalculatorStragety {    @Override    public int calculate(int a) {        return a+a;    }}public class SecondStragety implements CalculatorStragety {    @Override    public int calculate(int a) {        return a*a;    }}

client调用

 /**     * 测试策略模式:属性动画中的插值器的interpolator就是策略模式的代表     *     * 优点:结构清晰,方便拓展,数据更为安全,耦合度较低,主要用于分离算法     *     * 缺点:策略增加,类的增加。     *     */    public void testStrategyMode() {        ContextStragety strategy = new ContextStragety();        strategy.setStrategy(new FirstStragety());//        strategy.setStrategy(new SecondStragety());        strategy.calculate(88);    }
0 0
原创粉丝点击