Clase 22 - Ejercicio integrador: Pokemon

publicado a la‎(s)‎ 9 oct. 2014 6:47 por Mariana Matos
Estuvimos trabajando toda la clase con parte del enunciado del TP de Pokemon, en particular hicimos entre todos los siguientes puntos, de los cuales se hizo foco en distintas cosas:

Punto 1: delegación y encapsulamiento. La forma más simple de modelar los movimientos que elegimos usar tenía la limitación de no poder compartir un mismo movimiento entre dos pokemones distintos (por ejemplo Descanso para Pikachu y Jigglypuff). Al no romper el encapsulamiento nos resultaría más fácil introducir cambios en cómo está modelada esta parte, no planteamos otra alternativa por cuestión de tiempos, pero hay más de una, vale pensarlo por su cuenta :)

Punto 2a: herencia, delegación, polimorfismo y efecto colateral. Le dejamos al movimento decidir qué hacer cuando se usa. Algo que surgió en la clase, qué debería pasar si el movimiento que me pasan no lo puede usar el pokemon receptor porque no es uno de sus movimientos disponibles? Hacer de cuenta que no pasó nada no es una opción, eso sólo trae infelicidad.

Punto2b: herencia, delegación, polimorfismo, manejo de errores y efecto colateral. Acá planteamos varias alternativas, inicialmente le preguntábamos desde el pokemon a la condición si podía atacar y en caso de que se pudiera lo hacíamos, de lo contrario estallábamos. Pero al hacer la condición de sueño vimos que nos quedaba puedeAtacar: como de consulta y con efecto para despertar al bicho! Eso nos llevó a cambiar la lógica original para darle más control a la condición, en vez de preguntarle si puede, llegando a un escenario mucho más prolijo y manejable.

Punto 5: incorporar modificaciones sobre lo que ya tenemos, manejo de colecciones, delegación y efecto colateral.

Punto 6: dejamos algunos huecos acá que pueden tratar de resolver, el foco estuvo nuevamente en polimorfismo y delegación.

Punto 7: tenemos que agregar otra condición que se comporta distinto a las que ya teníamos, vemos que lo que nos quedó en el punto 2b era genial para incorporar estos cambios. Vimos dos alternativas, una que jugaba con redefinición (incluía cambios menores sobre lo que hicimos antes) y otra con un manejo de errores más avanzado (sin cambios a lo anterior, sólo se agregaba la nueva condición).

Desde ya, pueden tratar de resolver las partes que no hicimos del ejercicio y venir con dudas la próxima clase para discutir la solución.

La clase que viene vamos a trabajar con el parcial de los Minions, por favor traigan una copia y léanlo antes de la clase.
Comments