Метод с двумя параметрами, которые нужно отправить дважды

Допустим, у меня есть метод, который имеет два параметра. я реализую их как:

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

как вы видите, это не очень красивое решение. Я планирую реализовать с использованием двойной диспетчеризации, но с двумя параметрами, которые требуют двойной диспетчеризации, боюсь, я немного озадачен. любые идеи, пожалуйста.

Я реализую в Java, кстати.

1 ответ

Решение

Если возможно, я бы пошел с рисунком посетителя.

То есть класс, который определяет метод (или, точнее, методs для каждого типа), реализует интерфейс, называемый посетителем. Вместо того, чтобы делать проверки экземпляров, вы затем вызываете object.accept(this). Затем объект вызывает правильный "визит"-метод посетителя.

Другие вопросы по тегам