evitar instancia en Java

Me han dicho en algún momento en la universidad (y luego he leído en catorce lugares) que usarinstanceof Sólo debe utilizarse como un 'último recurso'. Teniendo esto en cuenta, ¿puede alguien saber si el siguiente código que tengo es un último recurso? He echado un vistazo al desbordamiento de pila pero no puedo encontrar un escenario similar. ¿Tal vez lo he perdido?

private void allocateUITweenManager() {
   for(GameObject go:mGameObjects){
      if (go instanceof GameGroup) ((GameGroup) go).setUITweenManager(mUITweenManager);
   }
}

dónde

mGameObjects es una matriz, solo algunos de los cuales sonGameGroup tipoGameGroup es una subclase de clase abstractaGameObject.GameGroup usa interfazUITweenable que tiene metodosetUITweenManager()GameObject no usa interfazUITweenable

Supongo que podría (y probablemente debería) reemplazar igualmenteGameGroup en mi código de arriba conUITweenable - Me estaría haciendo la misma pregunta.

¿Hay otra forma de hacer esto que evite lainstanceof? Este código no puede fallar, como tal (creo, ¿verdad?), Pero dada la mala prensainstanceof parece obtener, he cometido algún pecado cardinal de OOP en algún lugar a lo largo de la línea que me tiene usandoinstanceof ¿aquí?

¡Gracias por adelantado!

Respuestas a la pregunta(9)

Su respuesta a la pregunta