详谈:解释器模式(四)

在 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();
    }
}
相关推荐
夕珩7 天前
单例模式、原型模式、工厂方法模式、抽象工厂模式、建造者模式、解释器模式、命令模式
单例模式·解释器模式·建造者模式·工厂方法模式·抽象工厂模式·命令模式·原型模式
逆境不可逃8 天前
【从零入门23种设计模式15】行为型之解释器模式
设计模式·解释器模式
资深web全栈开发1 个月前
设计模式之解释器模式 (Interpreter Pattern)
设计模式·解释器模式
YigAin1 个月前
Unity23种设计模式之 解释器模式
设计模式·解释器模式
Engineer邓祥浩2 个月前
设计模式学习(22) 23-20 解释器模式
学习·设计模式·解释器模式
小飞侠hello2 个月前
解释器模式
解释器模式
小码过河.2 个月前
设计模式——解释器模式
java·设计模式·解释器模式
会员果汁2 个月前
23.设计模式-解释器模式
设计模式·解释器模式
拾光Ծ2 个月前
进程程序替换与exec函数族详解 与进程替换实战:自主Shell命令行解释器实现
linux·运维·服务器·阿里云·解释器模式
__万波__2 个月前
二十三种设计模式(二十)--解释器模式
java·设计模式·解释器模式