具有两个参数的方法,两个参数都需要双重分派
可以说我有一个有两个参数的方法。我一直将它们实现为:
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果可能的话,我会选择访问者模式。
也就是说,定义方法的类(或者更确切地说,每种类型的方法)实现了一个称为访问者的接口。然后,您可以调用 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.