今天来学习解释器模式,关于这个模式,我看完之后还真是找不出什么例子。。这个模式的主要用途我感觉是在语言的编译中,在现实项目中应该很少会有这样的需求,而且我经验也不多,一时半会真是想不起来怎么理解这个,恕本人才疏学浅,只能在网上找一些前辈写的东西先看一看,以后想到更好的例子之后再来改正。
我引用的是java_my_life的一篇博客,写的不错,链接地址贴给大家,http://www.cnblogs.com/java-my-life/archive/2012/06/19/2552617.html 大家可以看一看
不过上边的博客没有写出优缺点,我就来总结一下
缺点就是,解释器中每一个文法都定义了至少一个类,所以后期文法十分复杂时,维护量是难以想象的,所以遇到文法十分复杂的时候,要考虑使用编译生成器等来实现。
优点呢,就是文法很容易去扩展,遵循了设计模式的原则,所以在文法复杂度在一定程度之内时,这个模式还是很方便的,一般系统中很多类使用相似的语法,可以使用一个解释器来代替为每一个规则实现一个解释器。而且在解释器中不同的规则是由不同的类来实现的,这样使得添加一个新的语法规则变得简单。