策略模式是一种设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。策略模式使得算法的变化独立于使用算法的客户端。

下面是一个简单的Java代码示例,演示了如何实现策略模式:

首先,我们定义一个接口,该接口定义了所有算法的方法:

public interface IStrategy { public int execute(int a, int b); }

然后,我们实现几个不同的算法:

public class Add implements IStrategy { @Override public int execute(int a, int b) { return a + b; } }

public class Subtract implements IStrategy { @Override public int execute(int a, int b) { return a - b; } }

public class Multiply implements IStrategy { @Override public int execute(int a, int b) { return a * b; } }

接下来,我们定义一个Context类,该类将使用策略模式来执行算法:

public class Context { private IStrategy strategy;

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

public int executeStrategy(int a, int b) {
    return strategy.execute(a, b);
}

}

最后,我们可以使用Context类来执行不同的算法:

public class Main { public static void main(String[] args) { Context context = new Context(new Add()); System.out.println("Add: " + context.executeStrategy(10, 5));

    context = new Context(new Subtract());
    System.out.println("Subtract: " + context.executeStrategy(10, 5));

    context = new Context(new Multiply());
    System.out.println("Multiply: " + context.executeStrategy(10, 5));
}

}

输出结果为:

Add: 15 Subtract: 5 Multiply: 50

这个例子演示了策略模式的基本实现,它允许我们在运行时动态地选择不同的算法。这种灵活性可以使我们的代码更易于维护和扩展。

用java写一个策略模式

原文地址: https://www.cveoy.top/t/topic/bLms 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录