Design patterns 不应该';访问者模式不能重构吗?

Design patterns 不应该';访问者模式不能重构吗?,design-patterns,visitor-pattern,Design Patterns,Visitor Pattern,目前我正在做一个项目,该项目利用了。在使用这种模式时,我发现自己写的评论如下: *@param visitorienterface$visitor要访问的访问者。 访问者模式由以下界面组成: VisitorInterface { public function visit($object); } VisitableInterface { public function accept(VisitorInterface $visitor); } 现在我的问题是:这不应该是相反的吗

目前我正在做一个项目,该项目利用了。在使用这种模式时,我发现自己写的评论如下:

*@param visitorienterface$visitor要访问的访问者。

访问者模式由以下界面组成:

VisitorInterface {
    public function visit($object);
}

VisitableInterface {
    public function accept(VisitorInterface $visitor);
}
现在我的问题是:这不应该是相反的吗

VisitorInterface {
    public function accept($object);
}

VisitableInterface {
    public function visit(VisitorInterface $visitor);
}
因为现在访客会接受某个东西来访问,因为访客应该是某个东西来访问某个东西。而visitable对象现在将接受访问者

例如:

现在我们有了一个接待客人的聚会。这些来访者可以被要求接受聚会上的东西来做些什么


我希望能够很好地解释我的想法,以表达我的“关注”。请不要因为我试图打破设计模式而责怪我:-)

方法是在带有参数的对象上调用的,而不是在参数上调用的。所以,如果您调用
human.visit(party)
,这意味着human访问了某个对象,并且在参数中指定了what-party

class Party implements VisitableInterface {
    public function visit(VisitorInterface $visitor) {
        $visitor->accept($this);
    }
}

class Human implements VisitorInterface {
    public function accept($object) {
        // do something with object
    }
}