案例
四则运算问题
通过解释器模式来实现四则运算,如计算a+b-c的值,具体要求
1) 先输入表达式的形式,比如 a+b+c-d+e, 要求表达式的字母不能重复
2) 在分别输入a ,b, c, d, e 的值
传统方案
1) 编写一个方法,接收表达式的形式,然后根据用户输入的数值进行解析,得到结果
2) 问题分析:如果加入新的运算符,比如 * / ( 等等,不利于扩展, 另外让一个方法来
解析会造成程序结构混乱,不够清晰
解释器模式
基本介绍
1) 在编译原理中, 一个算术表达式通过词法分析器形成词法单元,而后这些词法
单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。这
里的词法分析器和语法分析器都可以看做是解释器
2) 解释器模式(Interpreter Pattern):是指给定一个语言(表达式), 定义它的文法
的一种表示,并定义一个解释器, 使用该解释器来解释语言中的句子(表达式)
3) 应用场景
• 应用可以将一个需要解释执行的语言中的句子表示为一个抽象语法树
• 一些重复出现的问题可以用一种简单的语言来表达
• 一个简单语法需要解释的场景
4) 这样的例子还有,比如编译器、 运算表达式计算、正则表达式、 机器人等