Foros del Web » Programación para mayores de 30 ;) » Java »

¿Cómo evitar un análisis de casos con "instanceof"?

Estas en el tema de ¿Cómo evitar un análisis de casos con "instanceof"? en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 05/12/2011, 10:52
 
Fecha de Ingreso: abril-2004
Mensajes: 107
Antigüedad: 20 años, 7 meses
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.

Etiquetas: casos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:53.