解释器模式(Interpreter Pattern) (少用)
定义:Given a language, define a representation for its grammar along
with an interpreter that uses the representation to interpret sentences in the language. (给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。)
组成:
- 抽象表达式角色:声明一个抽象的解释操作,这个接口为所有具体表达式角色(抽象语
法树中的节点)都要实现的。
什么叫做抽象语法树呢?《java 与模式》中给的解释为:抽象语法树的每一个节点都
代表一个语句,而在每个节点上都可以执行解释方法。这个解释方法的执行就代表这个
语句被解释。由于每一个语句都代表这个语句被解释。由于每一个语句都代表一个常见
的问题的实例,因此每一个节点上的解释操作都代表对一个问题实例的解答。 - 终结符表达式角色:具体表达式。
- 实现与文法中的终结符相关联的解释操作
- 而且句子中的每个终结符需要该类的一个实例与之对应
- 非终结符表达式角色:具体表达式。
- 文法中的每条规则 R::=R1R2…Rn 都需要一个非终结符表带式角色
- 对于从 R1 到 Rn 的每个符号都维护一个抽象表达式角色的实例变量<