Question

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.

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top