知识卡片
解释器模式的定义与四个角色
内容
解释器模式定义一门语言的文法并解释句子,是 [[用公式而非直接计算应对参数组合爆炸]]的正式方案,四个角色:AbstractExpression抽象 解释器;TerminalExpression终结符表达式(不可再拆分,如变量a/b/c); NonterminalExpression非终结符表达式(每条规则一个类);Context环境角色(传递变量 映射)。发散:能否参与更小文法运算是区分终结符与非终结符的关键。
参考来源
- 位置:《设计模式之禅(第2版)》第27章《解释器模式》(源文件:_epub-src/text/part0123.html)
- 结论依据:原文给出解释器模式定义并说明AbstractExpression、TerminalExpression、NonterminalExpression、Context四个角色的职责,指出"终结符表达式的概念就是如此,不能够再参与比自己更小的文法运算了"。
- 原始内容:给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子……终结符表达式……通常一个解释器模式中只有一个终结符表达式,但有多个实例……非终结符表达式根据逻辑的复杂程度而增加。