用解释器模式代码实现两位数的加减法,使用java实现
时间: 2024-05-15 16:16:12 浏览: 14
下面是使用Java实现解释器模式的例子,实现两位数的加减法:
首先定义抽象表达式接口Expression:
```
public interface Expression {
int interpret();
}
```
定义具体表达式类AddExpression:
```
public class AddExpression implements Expression {
private Expression leftExpression;
private Expression rightExpression;
public AddExpression(Expression leftExpression, Expression rightExpression) {
this.leftExpression = leftExpression;
this.rightExpression = rightExpression;
}
@Override
public int interpret() {
return leftExpression.interpret() + rightExpression.interpret();
}
}
```
定义具体表达式类SubtractExpression:
```
public class SubtractExpression implements Expression {
private Expression leftExpression;
private Expression rightExpression;
public SubtractExpression(Expression leftExpression, Expression rightExpression) {
this.leftExpression = leftExpression;
this.rightExpression = rightExpression;
}
@Override
public int interpret() {
return leftExpression.interpret() - rightExpression.interpret();
}
}
```
定义终结符表达式类NumberExpression:
```
public class NumberExpression implements Expression {
private int number;
public NumberExpression(int number) {
this.number = number;
}
@Override
public int interpret() {
return number;
}
}
```
最后,使用解释器模式实现两位数的加减法:
```
public class Main {
public static void main(String[] args) {
// 10 + 20 - 5
Expression expression = new SubtractExpression(
new AddExpression(new NumberExpression(10), new NumberExpression(20)),
new NumberExpression(5)
);
int result = expression.interpret();
System.out.println("The result is: " + result); // 输出 25
}
}
```