定义 :
解释器模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器适用该表示来解释语言中的句子。
解释器模式是一种使用频率相对较低且学习难度相对较大的设计模式,它用于描述如何使用面向对象语言构成一个简单的语言解释器。
二、解释器模式的结构
解释器模式结构包含以下4个角色:
- 抽象表达式:声明了抽象的解释操作,是所有终结符表达式和非终结符表达式的公共父类。
- 终结符表达式:是抽象表达式的子类,实现了与文法中的终结符相关联的解释操作。
- 非终结符表达式:是抽象表达式的子类,实现了与文法中的非终结符相关联的解释操作。
- 环境类:用于存储解释器之外的一些全局信息。
三、解释器模式的优缺点和适用环境
3.1 解释器模式的优点
- 易于改变和扩展文法
- 可以方便的实现一个简单的语言
- 实现文法较为容易
- 增加新的解释表达式较为方便
3.2 解释器模式的缺点
- 对于复杂文法难以维护
- 执行效率低
3.3 解释器模式的适用环境
- 可以将一个需要解释执行的语言中的句子表示为一棵抽象语法树
- 一些重复出现的问题可以用一种简单的语言进行表达
- 一个语言的文法较为简单
- 执行效率不是关键问题
【参考文献】:
本文是根据刘伟的《Java设计模式》一书的学习笔记,仅供学习用途,勿做其他用途,请尊重知识产权。
【本文代码仓库】:https://gitee.com/xiongbomy/java-design-pattern.git