访客模式不应该被重构吗?

时间:2017-06-14 08:31:48

标签: design-patterns visitor-pattern

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

(keydown)="funct($event)" funct(event) { if (event.keyCode == 229) { return false; } }

访客模式由以下界面组成:

* @param VisitorInterface $visitor The visitor to visit.

现在我的问题:不应该相反吗?

VisitorInterface {
    public function visit($object);
}

VisitableInterface {
    public function accept(VisitorInterface $visitor);
}

因为现在访问者会接受访问的东西,因为访问者应该访问某些东西。虽然可访问对象现在将接受访问者。

例如:

VisitorInterface {
    public function accept($object);
}

VisitableInterface {
    public function visit(VisitorInterface $visitor);
}

所以现在我们有一个接待访客的聚会。可以要求这些访客接受派对上的某些事情。

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

1 个答案:

答案 0 :(得分:0)

使用参数在对象上调用方法,而不是参数。所以,如果你打电话给human.visit(party),那就意味着人类会访问某些东西,并在参数中指定了什么 - 派对。