Java 策略模式实现加减乘除计算器
首先,我们需要定义一个接口CalculatorStrategy来表示计算器的策略:
public interface CalculatorStrategy {
double calculate(double num1, double num2);
}
然后,我们可以实现四种不同的策略类来进行加减乘除运算:
public class AddStrategy implements CalculatorStrategy {
@Override
public double calculate(double num1, double num2) {
return num1 + num2;
}
}
public class SubtractStrategy implements CalculatorStrategy {
@Override
public double calculate(double num1, double num2) {
return num1 - num2;
}
}
public class MultiplyStrategy implements CalculatorStrategy {
@Override
public double calculate(double num1, double num2) {
return num1 * num2;
}
}
public class DivideStrategy implements CalculatorStrategy {
@Override
public double calculate(double num1, double num2) {
if (num2 == 0) {
throw new ArithmeticException('Cannot divide by zero');
}
return num1 / num2;
}
}
接下来,我们可以创建一个Calculator类来使用策略模式来进行计算:
public class Calculator {
private CalculatorStrategy strategy;
public void setStrategy(CalculatorStrategy strategy) {
this.strategy = strategy;
}
public double calculate(double num1, double num2) {
if (strategy == null) {
throw new IllegalStateException('Strategy not set');
}
return strategy.calculate(num1, num2);
}
}
最后,我们可以测试一下这个计算器:
public class Main {
public static void main(String[] args) {
Calculator calculator = new Calculator();
// 使用加法策略
calculator.setStrategy(new AddStrategy());
double result = calculator.calculate(5, 3);
System.out.println('Addition result: ' + result);
// 使用减法策略
calculator.setStrategy(new SubtractStrategy());
result = calculator.calculate(5, 3);
System.out.println('Subtraction result: ' + result);
// 使用乘法策略
calculator.setStrategy(new MultiplyStrategy());
result = calculator.calculate(5, 3);
System.out.println('Multiplication result: ' + result);
// 使用除法策略
calculator.setStrategy(new DivideStrategy());
result = calculator.calculate(5, 3);
System.out.println('Division result: ' + result);
}
}
这样,我们就使用策略模式实现了一个含加减乘除的计算器。
原文地址: https://www.cveoy.top/t/topic/qDze 著作权归作者所有。请勿转载和采集!