Skip to content

解释器模式(Interpreter Pattern)

定义

定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,这里的 "语言" 是指使用规定格式和语法的代码。解释器模式是一种类行为型模式。

结构

类图

image-20200718155408165

时序图

image-20200718155505262

角色

  • 抽象表达式(AbstractionExpression):在抽象表达式中声明了抽象的解释操作,它是所有终结符表达式和非终结符表达式的公共父类。

  • 终结符表达式(TerminalExpression):它实现了与文法中的终结符相关联的解释操作,在句子中的每一个终结符都是该类的一个实例。通常在一个解释器模式中只有少数几个终结符表达式类,它们的实例可以通过非终结符表达式组成较为复杂的句子。

  • 非终结符/连接符(NonterminalExpression):它实现了文法中非终结符的解释操作,由于在非终结符表达式中可以包含终结符表达式,也可以继续包含非终结符表达式,因此其解释操作一般通过递归的方式来完成。

  • 环境类(Context):环境类又称为上下文类,它用于存储解释器之外的一些全局信息,通常它临时存储了需要解释的语句。

适用场景

参考

总访问量
总访问人数 人次