介绍
- 是一种不常用的设计模式。
- 用于描述如何构成一个简单的语言解释器,主要用于使用面向对象的语言开发的编译器和解释器设计。
- 当开发一种新语言时,可以考虑解释器模式。
- 尽量不要用解释器模式,后期的维护会有很大麻烦。在项目中,可以使用JRuby、Groove、java的js引擎来代替解释器的作用,弥补java语言的不足。
定义
给定一种语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
它所解决的问题是,如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构件一个解释器,该解释器通过解释这些句子来解决问题。
结构图
开发中常见场景
- EL表达式的处理
- 正则表达式解释器
- SQL语法的解释器
- 数学表达式解释器