解释器模式研讨.ppt

解释器模式研讨

1)易于改变和扩展文法因为该模式使用类来表示文法规则,你可使用继承来改变或扩展该文法。已有的表达式可被增量式地改变,而新的表达式可定义为旧表达式的变体。 2)易于实现文法定义抽象语法树中各个节点的类的实现大体类似。这些类易于直接编写,通常它们也可用一个编译器或语法分析程序生成器自动生成。 3)复杂的文法难以维护解释器模式为文法中的每一条规则至少定义了一个类(使用BNF定义的文法规则需要更多的类)。因此包含许多规则的文法可能难以管理和维护。可应用其他的设计模式来缓解这一问题。但当文法非常复杂时,其他的技术如语法分析程序或编译器生成器更为合适。 4)增加了新的解释表达式的方式解释器模式使得实现新表达式“计算”变得容易。例如,你可以在表达式类上定义一个新的操作以支持优美打印或表达式的类型检查。如果你经常创建新的解释表达式的方式,那么可以考虑使用Visitor模式以避免修改这些代表文法的类 * 将中文数字转换为数学的数字 2. 一个把大写数字输出为阿拉伯数字数字的需求来用解释器模式实 现。例如: 1:伍千肆百参拾贰,输出为5432。 2:当用户输入的是数字字符串时,直接输入数字,例如:1000,直接输出1000 * 解释器这个模式在实际应用当中应用并不广泛,能想到的例子也不多,可能是我水平不够 * 解释器这个模式在实际应用当中应用并不广泛,能想到的例子也不多,可能是我水平不够 *

文档评论(0)

1亿VIP精品文档

相关文档