希望这不是一个愚蠢的问题,但是解析配置文件并使内容可用于程序的行为是解释器模式的简单示例吗?
我发现的所有示例似乎都暗示着解释器模式适用于更复杂的情况(例如使用复杂的语法解释正式语言),但似乎没有任何理由无法解释情况也要简单得多。
答案 0 :(得分:1)
模式的主要优势之一是作为一种常见的语言来描述众所周知的问题及其解决方案。
解释器的典型示例是一个简单的算术表达式评估器,其中将输入表达式解析为复合树。然后在头节点上应用execute()
以计算表达式的值,每个子表达式(在分支节点处)都发挥其作用。
如果您的配置文件是以XML或JSON之类的简单语言编写的,那么Interpreter模式似乎是一个过大的选择,因为没有真正的“繁琐工作”来解释要完成的语言语句(即解析)。观察与Interpreter的相似之处在学术上可能是有用的(如您所做的),但是可能会误导他人,以在您使用 Interpreter Pattern 的代码中进行注释。
但是,如果您的配置用更复杂的语言表示,例如涉及条件,循环等,那么可以肯定 Interpreter 可能是合理的。解释器模式代码将包括该语言的“解析器”,从而将创建某种形式的有用树结构。然后,该树将用于通过加载模块和相互依赖性等或您的应用程序所需的任何东西进行配置。这是翻译。