假设我有一个有两个参数的方法。我一直在实施它们:
if(aObj instance of Marble) {
if(bObj instance of Bomb) {
this.resolve((Marble)aObj,(Bomb)bObj);
}
}
如您所见,它不是一个非常漂亮的解决方案。我计划使用双重调度来实现,但是有两个参数都需要双重调度,恐怕我有点难过。请有任何想法。
我在java中实现顺便说一句。
假设我有一个有两个参数的方法。我一直在实施它们:
if(aObj instance of Marble) {
if(bObj instance of Bomb) {
this.resolve((Marble)aObj,(Bomb)bObj);
}
}
如您所见,它不是一个非常漂亮的解决方案。我计划使用双重调度来实现,但是有两个参数都需要双重调度,恐怕我有点难过。请有任何想法。
我在java中实现顺便说一句。
如果可能的话,我会使用访问者模式。
也就是说,定义方法的类,(或者更确切地说,每种类型的方法)实现了一个称为访问者的接口。然后调用 object.accept(this),而不是进行实例检查。然后该对象调用访问者的正确“访问”方法。