详谈:解释器模式(四)

在 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();
    }
}
相关推荐
砍光二叉树9 天前
【设计模式】行为型-解释器模式
设计模式·解释器模式
青春易逝丶10 天前
解释器模式
解释器模式
Yu_Lijing18 天前
基于C++的《Head First设计模式》笔记——解释器模式
c++·设计模式·解释器模式
夕珩1 个月前
单例模式、原型模式、工厂方法模式、抽象工厂模式、建造者模式、解释器模式、命令模式
单例模式·解释器模式·建造者模式·工厂方法模式·抽象工厂模式·命令模式·原型模式
逆境不可逃1 个月前
【从零入门23种设计模式15】行为型之解释器模式
设计模式·解释器模式
资深web全栈开发2 个月前
设计模式之解释器模式 (Interpreter Pattern)
设计模式·解释器模式
YigAin2 个月前
Unity23种设计模式之 解释器模式
设计模式·解释器模式
Engineer邓祥浩2 个月前
设计模式学习(22) 23-20 解释器模式
学习·设计模式·解释器模式
小飞侠hello2 个月前
解释器模式
解释器模式
小码过河.3 个月前
设计模式——解释器模式
java·设计模式·解释器模式