news 2026/4/18 11:26:55

详谈:解释器模式(三)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
详谈:解释器模式(三)

我们接上文来继续讲:

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

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

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; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 3:30:10

跨部门协作流程:从选址到凭证,打造高效新店开业闭环

在企业规模化扩张过程中,新店开业涉及运营、采购、财务、法务等多个部门协同。传统模式下,信息断层、重复录入、审批滞后等问题频发。通过系统化流程设计与数字化工具支撑,可实现端到端高效协作。一、六大核心阶段全景阶段1:营建投…

作者头像 李华
网站建设 2026/4/18 8:20:01

Java IO流:字节与字符的高效数据通道

在Java编程中,IO(Input/Output)流是连接程序与外部设备(文件、网络、键盘等)的核心桥梁,它以“流”的形式实现数据的有序传输,如同水管输送水流般,将数据字节或字符持续输送到目标位…

作者头像 李华
网站建设 2026/4/18 3:30:46

SuperPoint预训练网络终极指南:从入门到精通

SuperPoint预训练网络终极指南:从入门到精通 【免费下载链接】SuperPointPretrainedNetwork PyTorch pre-trained model for real-time interest point detection, description, and sparse tracking (https://arxiv.org/abs/1712.07629) 项目地址: https://gitco…

作者头像 李华
网站建设 2026/4/18 8:07:29

16、Unix 命令行:管道、过滤器与打印操作全解析

Unix 命令行:管道、过滤器与打印操作全解析 1. 管道与过滤器基础 在 Unix 命令行中,管道和过滤器是强大的工具,能让我们高效处理数据。管道允许将一个程序的输出直接作为另一个程序的输入,无需将数据写入磁盘。创建管道时,在命令行的两个命令之间使用竖线 | 即可。例如…

作者头像 李华
网站建设 2026/4/18 11:25:39

如何转行黑客网络安全行业?保姆级指南,看这一篇就够了

如何转行黑客/网络安全行业?从0开始保姆级讲解! 网络安全技术被广泛应用于各个领域,各大企业都在争抢网络安全人才,这使得网络安全人才的薪资一涨再涨,想转行网络安全开发的人也越来越多。而想要顺利转行网络安全开发&…

作者头像 李华
网站建设 2026/4/18 8:16:27

参透了浏览器的工作原理,你就能解决80%的前端难题

你好,我是李兵,现在是一名创业者,也是一名工程师。我是 2005 年开始工作的,基于对新技术的兴趣与敏感性,2008 年 Chromium 项目一开源,我便第一时间下载体验。随后,在创业阶段的我基于 Chromium…

作者头像 李华