Interpreter解释器模式
来源:互联网 发布:欧洲卡车模拟2 知乎 编辑:程序博客网 时间:2024/06/09 18:45
前言:
关于23种设计模式的所有示例代码请参考:https://github.com/Wuchenwcf/MyCode/tree/master/DP
本文所述代码请参考:https://github.com/Wuchenwcf/MyCode/tree/master/DP/MyDB/Interpreter
一、解释器模式
本文将使用解释器模式实现将英文数字表达式转换为阿拉伯数字,类图如下:
如上图所示:
终结解释器是:GeExpression,HundredExpression
非终结解释器有:ThousandExpression,MillionExpression,BillionExpression
Context在其中起到的作用其实就是保存解释器的中间结果
最终的运行结果如下图:
可见,无论数字表达式有多长,都可以轻而易举地将其解析为阿拉伯数字。就是如此优秀。
解释器模式总结:
优点:解释器是一个简单的语法分析工具,具有可扩展性,修改语法只需要修改相应的关键字解释器就可以了,添加语法也只需要添加一个关键字解释器。
缺点:
递归调用效率不高
0 0
- 解释器(Interpreter )模式
- Interpreter解释器模式
- Interpreter 解释器模式
- Interpreter 解释器模式
- 解释器模式(Interpreter)
- interpreter 解释器模式
- 解释器模式-interpreter
- Interpreter - 解释器模式
- 解释器模式(Interpreter)
- 解释器模式 interpreter
- Interpreter解释器模式
- 解释器模式(Interpreter Pattern)
- 解释器模式(Interpreter Pattern)
- 解释器模式(Interpreter)
- Interpreter(解释器模式)
- 25.解释器模式--Interpreter
- 解释器模式 Interpreter Pattern
- 解释器模式(Interpreter Pattern)
- Longest Substring Without Repeating Characters
- 合并排序的递归算法和非递归算法、快速排序算法
- Unity学习笔记(2)- MonoBehaviour类的生命周期及脚本报错收集
- 有关数组的运算
- Spark取出(Key,Value)型数据中Value值为前n条数据
- Interpreter解释器模式
- Android面试题资源汇总
- window.print()页面打印之表格内容分页填充进行分页打印
- 粒子群算法
- 使用人脸中的方法来进行车牌定位和精定位
- Rxjava实践-用Rxjava代替handler实现无限轮播图
- 双屏、3屏拼接——A卡、N卡——Windows、Linux
- Mysql——存储引擎
- js部分知识点