详谈:解释器模式(三)

我们接上文来继续讲:

计算符怎么处理呢?计算符左右两边可能是单个数字,也可能是另一个计算公式。但无论是数字还是公式,两者都有一个共同点,那就是他们都会返回一个整数:数字返回其本身,公式返回其计算结果。

所以我们可以根据这个共同点提取出一个返回整数的接口,数字和计算符都作为该接口的实现类。在计算时,使用栈结构存储数据,将数字和计算符统一作为此接口的实现类压入栈中计算。

talk is cheap, show me the code.

数字和计算符公共的接口:

复制代码
interface Expression {
    int intercept();
}

上文已经说到,数字和计算符都属于表达式的一部分,他们的共同点是都会返回一个整数。从表达式计算出整数的过程,我们称之为解释(intercept)。

对数字类的解释实现起来相对比较简单:

复制代码
public class Number implements Expression {
    int number;

    public Number(char word) {
        switch (word) {
            case '零':
                number = 0;
                break;
            case '一':
                number = 1;
                break;
            case '二':
                number = 2;
                break;
            case '三':
                number = 3;
                break;
            case '四':
                number = 4;
                break;
            case '五':
                number = 5;
                break;
            case '六':
                number = 6;
                break;
            case '七':
                number = 7;
                break;
            case '八':
                number = 8;
                break;
            case '九':
                number = 9;
                break;
            default:
                break;
        }
    }

    @Override
    public int intercept() {
        return number;
    }
}
相关推荐
萤虫之光1 天前
详谈:解释器模式(四)
解释器模式
萤虫之光2 天前
详谈:解释器模式(二)
解释器模式
萤虫之光3 天前
详谈:解释器模式(一)
解释器模式
ZouZou老师6 天前
C++设计模式之解释器模式:以家具生产为例
c++·设计模式·解释器模式
o0向阳而生0o7 天前
115、23种设计模式之解释器模式(22/23)
设计模式·解释器模式
开心香辣派小星11 天前
23种设计模式-15解释器模式
java·设计模式·解释器模式
明洞日记19 天前
【设计模式手册014】解释器模式 - 语言解释的优雅实现
java·设计模式·解释器模式
十步杀一人_千里不留行1 个月前
解释器模式:为 LLM 构建迷你 DSL 解释器,实现 Prompt 编排语言
python·prompt·解释器模式
TsengOnce2 个月前
设计模式(解释器模式(Interpreter Pattern)结构|原理|优缺点|场景|示例
设计模式·解释器模式