定义
解释器模式(Interpreter Pattern)给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
特征:为了解释一种语言,而为语言创建的解释器。
属于行为型模式。
适用场景
- 一些重复出现的问题可以用一种简单的语言来进行表达。
- 一个简单语法需要解释的场景。
举例
- JDK Pattern regex 正则表达式
- Spring Expression
优点
- 扩展性强:在解释器模式中由于语法是由很多类表示的,当语法规则更改时,只需修改相应的非终结符表达式即可;若扩展语法时,只需添加相应非终结符类即可。
- 增加了新的解释表达式的方式。
- 易于实现文法:解释器模式对应的文档应当是比较简单且易于实现的,过于复杂的语法并不适合使用解释器模式。
缺点
- 语法规则较复杂时,会引起类膨胀。
- 执行效率比较低。