
设计模式--解释器模式C++实现
给定一门语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子

角色分析
AbstractExpression抽象解释器,具体的解释任务由各个实现类完成,具体的解释器分别由TerminalExpression和NonterminalExpression完成

TerminalExpression终结符表达式,实现与文法中的元素相关的解释操作,通常一个解释器模式中只能有一个终结符表达式,但有多个实例,敌营不同的终结符
NonterminalExpression非终结符,文法中的每条规则对应一个非终结表达式。
Context环境角色,
①优点:是一个简单的语法分析工具,扩展性良好,修改语法只需要修改相对应的非终结符表达式就可以了,扩展语法只需要增加非终结符类即可
②缺点

解释器模式引起类膨胀
采用递归调用方式
效率问题,循环和引用太多
③使用场景
重复发生的事情可以用解释器模式(日志分析等)
一个简单语法需要解释的场景
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-33619-1.html
我狂晕倒
谁让你那么遭人恨呢