解释器模式和访问者模式有什么区别?

What is the difference between the Interpreter pattern and Visitor pattern?

我很难理解这两种设计模式。

能否请您给我上下文信息或示例,以便我能有一个清晰的想法并能够映射出两者之间的区别。

谢谢。

访问者模式允许您向 classes 添加功能而不改变它们。您在单个 place/class 中对不同类型的对象保持相同类型的行为,同时(可能)对每种类型具有不同的实现。您可以在处理单个 class(访问者)时扩展或更改多种类型对象的行为。当您想扩展不受您控制的 classes 的行为而不包装或扩展它们时也很有用。

在访问者中,行为的驱动程序是基于代表执行操作的对象类型。

解释器模式可用于领域问题,可以用简单的方式表达language/sentences。然后可以通过解释这些句子来解决问题。所以我们得到一个输入,我们可以理解(解释)它,然后根据输入的 interpretation/categorization 实现某些行为。

在解释器中,行为的驱动程序基于输入是什么,即输入的 interpretation/categorization。