详谈:解释器模式(四)

在 Number 类的构造函数中,先将传入的字符转换为对应的数字。在解释时将转换后的数字返回即可。

无论是加法还是减法,他们都是对左右两个表达式进行操作,所以我们可以将计算符提取出共同的抽象父类:

复制代码
abstract class Operator implements Expression {
    Expression left;
    Expression right;

    Operator(Expression left, Expression right) {
        this.left = left;
        this.right = right;
    }
}

在此抽象父类中,我们存入了两个变量,表达计算符左右两边的表达式。

加法类实现如下:

复制代码
class Add extends Operator {

    Add(Expression left, Expression right) {
        super(left, right);
    }

    @Override
    public int intercept() {
        return left.intercept() + right.intercept();
    }
}

减法类:

复制代码
class Sub extends Operator {

    Sub(Expression left, Expression right) {
        super(left, right);
    }

    @Override
    public int intercept() {
        return left.intercept() - right.intercept();
    }
}
相关推荐
小飞侠hello7 小时前
解释器模式
解释器模式
小码过河.2 天前
设计模式——解释器模式
java·设计模式·解释器模式
会员果汁2 天前
23.设计模式-解释器模式
设计模式·解释器模式
拾光Ծ21 天前
进程程序替换与exec函数族详解 与进程替换实战:自主Shell命令行解释器实现
linux·运维·服务器·阿里云·解释器模式
__万波__21 天前
二十三种设计模式(二十)--解释器模式
java·设计模式·解释器模式
老朱佩琪!1 个月前
Unity解释器模式
解释器模式
Yeniden1 个月前
Deepeek用大白话讲解 → 解释器模式(企业级场景1,规则引擎2,表达式解析3,SQL解析4)
java·sql·解释器模式
萤虫之光1 个月前
详谈:解释器模式(三)
解释器模式
萤虫之光1 个月前
详谈:解释器模式(二)
解释器模式