27.解释器模式
解释器模式(Interpreter Pattern)是一种按照规定语法进行解析的方案,其定义如下:Given a language,define a representation for its grammer along with an interpreter that uses the representation to interpret sentences in the language.给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。
解释器模式的优点:
- 解释器是一个简单语法分析工具,它最显著的优点就是扩展性,修改语法规则只要修改相应的非终结符表达式就可以了,若扩展语法,则只要增加非终结符类就可以了。
解释器模式的缺点:
- 解释器模式会引起类膨胀
- 解释器模式采用递归调用方法
- 效率问题
解释器模式的使用场景:
- 重复发生的问题可以使用解释器模式
- 一个简单语法需要解释的场景
在项目中可以使用shell、JRuby、Groovy等脚本语言来代替解释器模式,弥补Java编译型语言的不足。