设计模式(15)-行为型模式-INTERPRETER模式
2014-06-01 16:24
253 查看
1.1 INTERPRETER模式
1.2.1 功能
Interpreter模式描述语法解析器的设计模式。1.2.2 结构图
• A b s t r a c t E x p r e s s i o n (抽象表达式,如Re g u l a r E x p r e s s i o n )
— 声明一个抽象的解释操作,这个接口为抽象语法树中所有的节点所共享。
• T e r m i n a l E x p r e s s i o n (终结符表达式,如L i t e r a l E x p r e s s i o n )
— 实现与文法中的终结符相 关联的解释操作。
— 一个句子中的每个终结符需要该类的一个实例。
•N o n t e r m i n a l E x p r e s s i o n ( 非终结符表达式,如 AlternationExpression,RepetitionExpression,SequenceExpressions)
— 对文法中的每一条规则R ::= R1R2R3…Rn都需要一个N o n t e r m i n a l E x p r e s s i o n类。
— 为从R1到Rn的每个符号都维护一个A b s t r a c t E x p r e s s i o n类型的实例变量
— 为文法中的非终结符实现解释( I n t e r p r e t )操作。解释(I n t e r p r e t )一般要递归地调用表示R1到Rn的那些对象的解释操作。
• C o n t e x t(上下文)
— 包含解释器之外的一些全局信息。
• C l i e n t(客户)
— 构建(或被给定) 表示该文法定义的语言中一个特定的句子的抽象语法树。该抽象语
法树由No n t e r m i n a l E x p r e s s i o n和Te r m i n a l E x p r e s s i o n的实例装配而成。
— 调用解释操作。
协作:
•C l i e n t构建(或被给定)一个句子, 它是N o n t e r m i n a l E x p r e s si o n和Ter m i n a l E x p r e s s i o n的实例的一个抽象语法树 . 然后初始化上下文并调用解释操作。
• 每一非终结符表达式节点定义相应子表达式的解释操作。而各终结符表达式的解释操作构成了递归的基础。
• 每一节点的解释操作用上下文来存储和访问解释器的状态。
相关文章推荐
- 设计模式(15)-行为型-解释器模式(Interpreter)
- 设计模式(15)--Interpreter(解释器模式)--行为型
- 设计模式15:Interpreter 解释器模式(行为型模式)
- 设计模式(二十)解释器模式(Interpreter)-行为型
- [导入]C#面向对象设计模式纵横谈(16):(行为型模式) Interpreter 解释器模式.zip(9.14 MB)
- 设计模式学习15 Interpreter
- 设计模式学习15 Interpreter
- JAVA设计模式(22):行为型-解释器模式(Interpreter)
- 设计模式--解释器模式Interpreter(行为型)
- JAVA设计模式(15):行为型-命令模式(Command)
- 设计模式笔记(15)---命令模式(行为型)
- [设计模式] 15 解释器模式 Interpreter
- 设计模式笔记(15)---命令模式(行为型)
- JAVA设计模式(15):行为型-命令模式(Command)
- 设计模式学习日志(15)-Command命令(行为型模式) (引用)
- [导入]C#面向对象设计模式纵横谈(15):(行为型模式) Command 命令模式.zip(7.56 MB)
- C#面向对象模式设计第十六讲:Interpreter 解释器模式(行为型模式)
- 设计模式22---设计模式之解释器模式(Interpreter)(行为型)
- 面向对象设计模式之Interpreter解释器模式(行为型)