Cursosā€Ž > ā€ŽCursadas Anterioresā€Ž > ā€Ž2014ā€Ž > ā€ŽTar-MiĆ©rcolesā€Ž > ā€ŽBitacora - MiĆ©rcoles Tarde 2014ā€Ž > ā€Ž

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.