Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/12/2011, 10:52
varuk
 
Fecha de Ingreso: abril-2004
Mensajes: 107
Antigüedad: 20 años
Puntos: 0
Pregunta ¿Cómo evitar un análisis de casos con "instanceof"?

Hola.

Tengo este trozo de código.

En él, hay una clase "Elemento" que es padre de "Comida", "Puerta" y otras. Bueno, en el caso especial de "Comida" y "Puerta", éstas dos se manejan de forma diferente ya que tienen dos métodos ("getEnergia()" y "getMatrizDestino()") que no tienen las demás.

Mi pregunta es ¿Hay alguna forma de aplicar eso métodos sin estar recurriendo al "instanceof"?

Código:
personaje.setPuntos(matrizContenedora.getElemento(posicion).getPuntos() + personaje.getPuntos());
	
//Si el elemento es tipo Comida entonces aplica esto:	
if (this instanceof Comida){
	personaje.setEnergia(((Comida) matrizContenedora.getElemento(posicion)).getEnergia()+ personaje.getEnergia());
}
//Si el elemento es tipo Puerta aplica esto:
else if (this instanceof Puerta){
	personaje.setMatrizContenedora(((Puerta) matrizContenedora.getElemento(posicion)).getMatrizDestino());
	personaje.setPosicion(personaje.getMatrizContenedora().getPosicionVacia());
}
		
matrizContenedora.eliminarElemento(posicion);
Gracias.