用java写一个策略模式
时间: 2024-03-09 20:22:20 浏览: 13
策略模式是一种行为设计模式,它定义了一系列的算法,并将每一个算法封装起来,使他们可以相互替换。该模式使得算法的变化独立于使用算法的客户。
以下是一个简单的 Java 实现示例:
```
interface Strategy {
int doOperation(int num1, int num2);
}
class AdditionStrategy implements Strategy {
@Override
public int doOperation(int num1, int num2) {
return num1 + num2;
}
}
class SubtractionStrategy implements Strategy {
@Override
public int doOperation(int num1, int num2) {
return num1 - num2;
}
}
class Context {
private Strategy strategy;
public Context(Strategy strategy) {
this.strategy = strategy;
}
public int executeStrategy(int num1, int num2) {
return strategy.doOperation(num1, num2);
}
}
public class StrategyPatternDemo {
public static void main(String[] args) {
Context context = new Context(new AdditionStrategy());
System.out.println("10 + 5 = " + context.executeStrategy(10, 5));
context = new Context(new SubtractionStrategy());
System.out.println("10 - 5 = " + context.executeStrategy(10, 5));
}
}
```
在这个例子中,我们定义了两个算法策略:加法和减法。我们将这些算法封装在独立的策略类中。然后,我们可以使用 `Context` 类来选择和执行具体的策略。这种抽象和封装使得算法的变化对客户是透明的,客户不需要知道具体的算法实现。