Java 策略模式详解:代码示例与应用场景
策略模式是一种行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。策略模式使得算法的变化独立于使用算法的客户端。
以下是一个简单的 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
这个例子演示了策略模式的基本实现,它允许我们在运行时动态地选择不同的算法。这种灵活性可以使我们的代码更易于维护和扩展。
原文地址: https://www.cveoy.top/t/topic/ndmE 著作权归作者所有。请勿转载和采集!