visitor-pattern - 访客行为模式的优点和缺点是什么?

标签 visitor-pattern

我正在做一个关于访问者设计模式的演示,我了解它是如何工作的,但我还没有找到“定义的”优点和缺点,而且我不想自己推测优点或缺点,因为我可以设置虚假信息。

最佳答案

以下是我对 Visitor 的一些想法图案:

优点:

  • 主要优点:向所有元素添加操作非常简单,因为您只需实现 Visitor 接口(interface)。无需修改每个 Element 对象即可添加操作。
  • 您可以将许多元素共有的操作重新组合到一个访问者类中。只有该操作的代码位于该 Visitor 类中。如果您想具体了解一项操作的代码,可以使代码更易于阅读。

缺点:

  • 您的访问者可以修改您的元素,因为元素的实例已发送给访问者。不建议这样做,因为它会导致 side effects 。这可以通过使对象不可变来解决。
  • Element 对象的代码分布在所有 Visitor 对象中。因此,元素的逻辑存在于许多类中。如果您想查看一个 Element 对象的代码,它会使代码更难阅读。
  • 每一项操作都需要一个新的 Visitor 类。

关于visitor-pattern - 访客行为模式的优点和缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33424842/

相关文章:

java - Java中如何避免instanceof检查

c++ - 函数重载的可见性在基类和派生类之间分离

java - 通过设计模式重构交换机机壳的旧实例

php - 如何根据该 IP 每秒或每分钟的连接数拒绝对该 IP 的服务?

c++ - Objective-C++内存问题

java - 在 Antlr 中使用访问者编辑 AST

java - 如何克服访问者实现的类型删除问题

java - 访问者模式和策略模式有什么区别?

c++ - 添加调试工具以增强变体访问者

Java:错误:类不是抽象的,并且不会重写抽象方法accept(Visitor)。在实现访客时