个人博客

http://www.milovetingting.cn

解释器模式

模式介绍

解释器模式是一种用得比较少的行为型模式,其提供了一种解释语言的语法或表达式的方式,该模式定义了一个表达式接口,通过该接口解释一个特定的上下文。

模式定义

给定一个语言,定义它的方法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。

使用场景

  1. 如果某个简单的语言需要解释执行而且可以将该语言中的语句表示为一个抽象语法树时,可以考虑使用解释器模式。

  2. 在某些特定的领域出现不断重复的问题时,可以将该领域的问题转化为一种语法规则下的语句,然后构建解释器来解释该语句。

简单使用

略…

小结

优点

灵活的扩展性。当我们想对方法规则进行扩展延伸时,只需要增加相应的非终结符解释器,并在构建抽象语法树时,使用到新增的解释器对象进行具体的解释即可。

缺点

因为对于每一条方法都可以对应至少一个解释器,其会生成大量的类,导致后期维护困难,同时,对于过于复杂的方法,构建抽象语法树会显得异常烦琐,甚至有可能会出现需要构建多棵抽象语法树的情况,因些,对于复杂的文档并不推荐使用解释器模式。