Java策略模式的简单应用实现方法


在Java中,策略模式(Strategy Pattern)是一种行为设计模式,它定义了一系列算法,并将每一种算法封装起来,使它们可以互相替换。策略模式让算法的变化独立于使用算法的客户。以下是一个简单的策略模式应用实现方法:

首先,我们定义一个策略接口,该接口声明了算法共有的方法:


public interface Strategy {
    void execute(); // 声明算法接口
}

然后,我们创建实现了该接口的具体策略类。这里以两个具体策略为例:


public class ConcreteStrategyA implements Strategy {
    @Override
    public void execute() {
        System.out.println("Executing strategy A");
        // 实现算法A的逻辑
    }
}

public class ConcreteStrategyB implements Strategy {
    @Override
    public void execute() {
        System.out.println("Executing strategy B");
        // 实现算法B的逻辑
    }
}

接下来,我们创建一个Context类,它使用策略接口。Context接受客户的请求,随后把请求委托给一个或多个策略对象,由策略对象来执行具体的算法。


public class Context {
    private Strategy strategy;

    // 构造函数,用于注入策略对象
    public Context(Strategy strategy) {
        this.strategy = strategy;
    }

    // 设置策略对象
    public void setStrategy(Strategy strategy) {
        this.strategy = strategy;
    }

    // 执行策略方法
    public void executeStrategy() {
        strategy.execute();
    }
}

最后,我们可以编写一个客户端来测试这个策略模式:


public class StrategyPatternDemo {
    public static void main(String[] args) {
        Context context = new Context(new ConcreteStrategyA());
        context.executeStrategy(); // 输出:Executing strategy A

        context.setStrategy(new ConcreteStrategyB());
        context.executeStrategy(); // 输出:Executing strategy B
    }
}

这个简单的例子展示了策略模式的基本用法:通过定义一系列的算法,把它们一个个封装起来,并使它们可相互替换。此模式让算法的变化独立于使用算法的客户。