解释器模式的标准定义
给定一个语言,定义它的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。(ps:刚看的时候,基本不明白啥意思...)
解释器模式的使用场景
1)如果某个简单的语言需要解释执行而且可以讲语言中的语句表示为一个抽象语法树时,可以考虑使用解释器模式
2)在某些特定的领域出现不断重复的问题时,可以将该领域的问题转化为一种语法规则下的语句,然后构建解释器来解释该语句。
(由于该模式很少用,目前我在多年项目开发中,就没有使用过这个模式,所以代码示例什么的就不过多的记录了,需要的小伙伴可以在网上找找)
解释器模式的小结
解释器模式的原理和本质:将复杂的问题简单化、模块化,分离实现、解释执行。
优点
灵活的扩展性
(ps:貌似到目前看到的9个设计模式,扩展性都是灵活的,目前看来设计模式基本都是在6大原则上发展出来的)
缺点
首先:它基本只是使用简单的文法,复杂的文法不推荐使用它,就这一点基本大家都使用不到这个设计模式了。
其次:就是它的每一条文法都至少对应一个解释器,这样一来,大家懂得,必然会产生打脸的类,这就导致后期维护的困难。
个人觉得这个设计模式只要知道有它,心中有数就行,后台和前端的开发实际基本都用不到。