深度优先搜索似乎能够执行与访问者设计模式类似的功能。访问者允许您定义一些数据结构并根据需要在这些结构上添加操作(以多个访问者的形式),而无需修改结构本身。 wikipedia 上提供了访问者模式的描述。如果我们对数据结构进行深度优先搜索(或任何其他图搜索算法,如广度优先搜索),并且每次找到该结构的元素时,我们都运行我们想要的操作,那么这似乎执行相同的功能访客。例如,考虑一棵树。即使树的某些节点具有不同的类型,我们仍然可以在进行 DFS 时检查节点类型,然后根据节点类型执行不同的操作。
最佳答案
深度优先搜索就是这样——搜索。访问者模式与深度优先搜索是正交的,因为访问者不一定关心树是如何遍历的;它只知道它需要在/到/对每个节点做什么。
关于oop - 访问者设计模式和深度优先搜索之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6299119/