一,概述
策略模式指:策略模式指将程序中可变部分抽象分离成一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
一般由三部分组成:
1.抽象策略角色:一般是接口或者抽象类
2,具体策略角色:接口实现,包装具体算法实现
3,环境角色:持有策略引用
二,UML类图
\"在这里插入图片描述\"
三,代码演示
策略接口

public interface Strategy {
    void execute();
}

具体策略实现类、

public class ConcreteStrategyA implements Strategy {
    @Override
    public void execute() {
        System.out.println(\"执行策略A\");
    }
}

public class ConcreteStrategyB implements Strategy {
    @Override
    public void execute() {
        System.out.println(\"执行策略B\");
    }
}

环境类,持有策略引用

public class Context {
    private Strategy strategy;

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

    public void executeStrategy() {
        this.strategy.execute();
    }
}

测试

public class Test {
    public static void main(String[] args) {
        Context context = new Context(new ConcreteStrategyA());
        context.executeStrategy();
    }
}

结果

执行策略A
四,优缺点分析
优点:避免大量逻辑判断代码,符合类开闭原则。
缺点:会导致系统的类会越来越复杂。

收藏 打印