早上好,stackoverflow,
我目前正在 AST 之类的东西上实现访问者模式。
现在我的问题是,如何迭代元素?
我认为将对象返回给访问者并让访问者从那里开始遍历更符合逻辑。因为当您想以不同的方式遍历对象时,您可以保持灵活性。
另一方面,人们可以说,访问者不应该关心对象的结构。因此,如果对象发生变化,您不必也更改访问者。
有没有一般建议如何解决这个问题?我有两本关于访问者模式的书,但这两本书都没有讨论如何处理更复杂的节点的问题。
问候
脚趾
对于树结构来说,这似乎非常简单。这accept
节点中的方法可能如下所示:
void accept(Visitor visitor) {
visitor.visitMyTypeOfNode(this);
for each child {
child.accept(visitor);
}
}
显然,您需要考虑这对于应用程序的整体架构是否有意义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)