设计模式(二十一)——解释器模式(Spring 框架中SpelExpressionParser源码分析)

1 四则运算问题

通过解释器模式来实现四则运算,如计算 a+b-c 的值,具体要求

1) 先输入表达式的形式,比如 a+b+c-d+e,  要求表达式的字母不能重复

2) 在分别输入 a ,b, c, d, e 的值

3) 最后求出结果:如图

设计模式(二十一)——解释器模式(Spring 框架中SpelExpressionParser源码分析)

2 传统方案解决四则运算问题分析

1) 编写一个方法,接收表达式的形式,然后根据用户输入的数值进行解析,得到结果

2) 问题分析:如果加入新的运算符,比如 * / ( 等等,不利于扩展,另外让一个方法来解析会造成程序结构混乱, 不够清晰.

3) 解决方案:可以考虑使用解释器模式  即:  表达式  -> 解释器(可以有多种) -> 结果

3 解释器模式基本介绍

基本介绍

1) 在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。这里的词法分析器和语法分析器都可以看做是解释器

2) 解释器模式(Interpreter Pattern):是指给定一个语言(表达式),定义它的文法的一种表示,并定义一个解释器, 使用该解释器来解释语言中的句子(表达式)

3) 应用场景

应用可以将一个需要解释执行的语言中的句子表示为一个抽象语法树

一些重复出现的问题可以用一种简单的语言来表达

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyyxxj.html