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

时间:2019-03-17 22:29:08

标签: java design-patterns visitor-pattern interpreter-pattern

I have troubles understanding these two design patterns.

Can you please give me contextual information or an example so I can get a clear idea and be able to map the difference between the two of them.

Thanks.

1 个答案:

答案 0 :(得分:2)

访问者模式允许您在不更改类的情况下向类添加功能。对于不同类型的对象,您可以在一个地方/一个类中保留相同的行为,而每种类型(可能)具有不同的实现。您可以在单个类(访问者)上工作时扩展或更改多种类型的对象的行为。当您想要扩展不受控制的类的行为而不包装或扩展它们时,也很有用。

在访客中,行为的驱动程序取决于执行操作的对象类型。

解释器模式可以用于可以用简单语言/句子表达的领域问题。然后可以通过解释这些句子来解决问题。这样我们就得到了输入,我们可以理解(解释)它,然后根据输入的解释/分类实现某些行为。

在解释器中,行为的驱动因素基于输入的含义,输入的解释/分类。