news 2026/5/26 9:26:27

详谈:解释器模式(三)

作者头像

张小明

前端开发工程师

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/5/26 2:46:01

想靠GIS转码拿高薪?这5个方向的难度门槛你真的了解吗?

01 WebGIS开发 难度:⭐️⭐️⭐️ 这个方向可以说是最容易的,难点在于以后的上升渠道,可能需要转前端开发、架构的概率比较大,否则比较难得到很好的长期发展。Web GIS开发涉及使用HTML、CSS、JavaScript等技术构建交互式地图和地…

作者头像 李华
网站建设 2026/5/25 7:07:50

一文摸透DDoS攻击所有概念,值得收藏!

一、到底什么是DDoS攻击 DDoS是Distributed Denial of Service的简称,中文是分布式拒绝服务。这有点拗口吧?这样,我们先理解下DDoS的前身DoS(Denial of Service),即拒绝服务。 最基本的DoS攻击就是攻击者利…

作者头像 李华
网站建设 2026/5/26 2:45:56

零基础跟我学做AI Agent(第1课:环境安装)

从今天开始,作者介绍一系列AI Agent(智能体)的开发或部署。需要的基础只是要对Python有个大概的了解,几乎是从0开始实践。涉及到的代码都会比较简单,一般不会超过50行。 一、Agent简介 AI Agent简称Agent,以…

作者头像 李华
网站建设 2026/5/26 2:45:54

2026年6大房产中介系统评测

在房产中介行业数字化转型加速的背景下,选择一款适配自身业务的管理系统成为提升运营效率、降低成本的关键。目前市场上的房产中介系统种类繁多,功能侧重点各有不同,让不少中介从业者难以抉择。本次评测聚焦6款主流房产中介系统,从…

作者头像 李华
网站建设 2026/5/26 1:10:03

12、Unix 文件管理全攻略

Unix 文件管理全攻略 1. 文件复制 在使用 cp 命令复制文件时,要特别注意路径名的准确性。如果使用 cp -R 时给出错误的路径名,可能会导致将目录树复制到自身,程序会一直运行直到文件系统被填满。 cp 命令复制文件时,新文件的所有权会变更为执行 cp 命令的用户。若…

作者头像 李华