知识卡片
规则类化代价
内容
每条文法规则对应一个类会让扩展局部化,但也会造成类数量膨胀。发散:解释器适合小语言,若领域规则不断膨胀,应考虑表驱动或规则引擎。
参考来源
- 位置:第5章《行为型模式》5.3节「Interpreter(解释器)」8.效果第3点(源文件:_epub-src/OEBPS/Text/part0083.xhtml)
- 结论依据:原文明确指出解释器模式为文法中的每一条规则至少定义一个类,因此包含许多规则的文法可能难以管理和维护,当文法非常复杂时其他技术如语法分析程序或编译器生成器更为合适,直接支持卡片对每条文法规则对应一个类会造成类数量膨胀、解释器适合小语言的论述。
- 原始内容:"复杂的文法难以维护。解释器模式为文法中的每一条规则至少定义了一个类(使用BNF定义的文法规则需要更多的类),因此包含许多规则的文法可能难以管理和维护……当文法非常复杂时,其他技术如语法分析程序或编译器生成器更为合适。"