Interpreter解释器模式

前言:

关于23种设计模式的所有示例代码请参考:https://github.com/Wuchenwcf/MyCode/tree/master/DP

本文所述代码请参考:https://github.com/Wuchenwcf/MyCode/tree/master/DP/MyDB/Interpreter

一、解释器模式

Interpreter解释器模式

本文将使用解释器模式实现将英文数字表达式转换为阿拉伯数字,类图如下:

Interpreter解释器模式

如上图所示:

终结解释器是:GeExpression,HundredExpression

非终结解释器有:ThousandExpression,MillionExpression,BillionExpression

Context在其中起到的作用其实就是保存解释器的中间结果

最终的运行结果如下图:

 

可见,无论数字表达式有多长,都可以轻而易举地将其解析为阿拉伯数字。就是如此优秀。

解释器模式总结:

优点:解释器是一个简单的语法分析工具,具有可扩展性,修改语法只需要修改相应的关键字解释器就可以了,添加语法也只需要添加一个关键字解释器。

缺点:

递归调用效率不高