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