java策略模式具体实例
时间: 2023-08-16 14:40:37 浏览: 81
java 策略模式的小例子
Java中的策略模式(Strategy Pattern)是一种行为设计模式,它允许你在运行时动态地改变对象的行为。在策略模式中,创建一个表示各种策略的对象和一个Context对象,该Context对象可以根据不同的策略来改变它的行为。
以下是一个简单的Java策略模式的示例,我们将使用该模式来实现一个简单的计算器应用程序。
首先,我们创建一个接口来表示策略:
```
public interface CalculationStrategy {
int calculate(int a, int b);
}
```
然后,我们创建几个实现该接口的类来表示不同的计算策略,例如:
```
public class AddStrategy implements CalculationStrategy {
public int calculate(int a, int b) {
return a + b;
}
}
public class SubtractStrategy implements CalculationStrategy {
public int calculate(int a, int b) {
return a - b;
}
}
public class MultiplyStrategy implements CalculationStrategy {
public int calculate(int a, int b) {
return a * b;
}
}
public class DivideStrategy implements CalculationStrategy {
public int calculate(int a, int b) {
return a / b;
}
}
```
接下来,我们创建一个Context类,它将使用策略接口来执行计算:
```
public class CalculatorContext {
private CalculationStrategy strategy;
public CalculatorContext(CalculationStrategy strategy) {
this.strategy = strategy;
}
public int executeStrategy(int a, int b) {
return strategy.calculate(a, b);
}
}
```
最后,我们可以在我们的应用程序中使用上述类来执行各种计算:
```
public class Main {
public static void main(String[] args) {
CalculatorContext context = new CalculatorContext(new AddStrategy());
System.out.println("10 + 5 = " + context.executeStrategy(10, 5));
context = new CalculatorContext(new SubtractStrategy());
System.out.println("10 - 5 = " + context.executeStrategy(10, 5));
context = new CalculatorContext(new MultiplyStrategy());
System.out.println("10 * 5 = " + context.executeStrategy(10, 5));
context = new CalculatorContext(new DivideStrategy());
System.out.println("10 / 5 = " + context.executeStrategy(10, 5));
}
}
```
在上述示例中,我们创建了一个CalculatorContext对象,并根据需要更改策略对象。每个策略对象都有一个calculate方法,用于执行不同的计算操作。通过这种方式,我们可以在运行时动态地更改对象的行为,而不需要更改应用程序的代码。
阅读全文