据我了解,在访问者模式的典型规范中,访问对象决定了如何遍历,一般来说,它们只支持一种遍历顺序。(例如,请参见此处或此处。)
是否有同样使用双分派的名称,但访客可以在哪里决定如何遍历对象层次结构?在我的应用程序中,一个非常异构的文档模型类型集合正在向访问者推送,例如导出操作。但是,说各种处理器(访问者)都应该按照广度优先顺序遍历似乎很僵硬。其中一些可能只关注模型的一个子集,或者可能需要以专门的顺序处理模型的某些部分。
我担心以非标准方式使用访问者模式中的名称会混淆其他开发人员。我建议的东西有名字吗?
我还会问是否有理由不让访问者控制遍历,以防万一我错过了通常的访问者公式中的一些智慧。如果可能相关,该应用程序是 Java 版本。