具有两个参数的方法,两个参数都需要双重分派

发布于 2024-09-02 19:51:13 字数 275 浏览 10 评论 0原文

可以说我有一个有两个参数的方法。我一直将它们实现为:

if(aObj instance of Marble)   {
   if(bObj instance of Bomb)   {
      this.resolve((Marble)aObj,(Bomb)bObj);
   }
}

如您所见,这不是一个非常漂亮的解决方案。我计划使用双重调度来实现,但是有两个参数都需要双重调度,恐怕我有点难住了。有什么想法请。

顺便说一句,我是用java实现的。

lets say i have a method which has two parameters. i have been implementing them as:

if(aObj instance of Marble)   {
   if(bObj instance of Bomb)   {
      this.resolve((Marble)aObj,(Bomb)bObj);
   }
}

as you can see its not a very pretty solution. i plan to implement using double dispatching, but with two parameters which both need double dispatching, im afraid im a bit stumped. any ideas please.

im implementing in java btw.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薄情伤 2024-09-09 19:51:13

如果可能的话,我会选择访问者模式

也就是说,定义方法的类(或者更确切地说,每种类型的方法)实现了一个称为访问者的接口。然后,您可以调用 object.accept(this),而不是进行实例检查。然后该对象调用访问者的正确“访问”方法。

If possible I would go with the visitor pattern.

That is, the class that defines the method, (or rather, the methods for each type) implements an interface called visitor. Instead of doing instance-of checks, you then call object.accept(this). The object then calls the correct "visit"-method of the visitor.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文