解释器模式是将一种语法转换为另外一种语法,并提供相应的转换规则和解释器。
解释器模式涉及到四个角色,假设将语法from--->to
- 语法from:初始语法。
- 语法to:最终语法。
- 语法规则
- 解释器或编译器。
解释器模式应该抽象理解,它并不是代表真正的Java类,以下举几个常见的示例。
学生学英语时需要将英语转换为汉语,这个场景下,语法from为英语,语法to为汉语,语法规则为英汉字典,解释器或编译器可以是一款翻译软件,也可以是大脑。
在编程时需要将字符转换为二进制,这个场景下,语法from为字符,语法to为二进制,语法规则为字符集,例如UTF-8,解释器为程序编译器。
在运行Java时需要将Java文件转换为字节码,这个场景下,语法from为Java语法,语法to为字节码语法,语法规则为Oracle官网中制定的规则,具体参考《深入理解JVM虚拟机》中的第六章节类文件结构,解释器为JVM。
从上述示例中可以看到,这种模式很常见,但是并不适合某个程序员去编写,去制定语法规则,去编写编译器。所以代码,UML图省略。如果自己非要去尝试,我之前也看过某些把数字转换为英文,例如1转换为One,2转换为Two等。我认为写这样的例子没有啥意义。