Consulta Tamagotchi #173
-
Buenas! Estaba haciendo el ejercicio Tamagotchi, que pide modelar el estado de una mascota virtual y que, según el mismo, las acciones de comer() y jugar() tengan distintos efectos. Mi duda pasa por la siguiente parte del enunciado:
Entiendo que la parte de aburrida es un typo porque sólo ahi aparece. Ahora bien, por un lado dice que se pone de malhumor si come estando hambrienta y luego dice que no puede jugar si está hambrienta, lo cual resulta contradictorio. Más alla de esta contradicción, yo asumí que no puede jugar estando hambrienta y duda principal gira en torno a como modelar el 'no poder' realizar una accion: Yo modele el Estado de una mascota como una interfaz, y luego hice una clase por cada estado con la implementacion correspondiente de los metodos comer y jugar. La clase Mascota delegaria a su estado aplicar en si misma los efectos de estas acciones. Ahora bien, en el caso particular del estado hambriento, qué tendría que hacer para modelar que no pueda jugar? Hacer que el método no haga nada suena raro porque daría la idea de que si puede y que no tiene efecto. Arrojar una exception tampoco me termina de cerrar porque según entendí, la idea es más bien tirar exceptions en código que no depende de uno (tipo integraciones con 3rd parties). Gracias! |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
Buenas @Gruschka ! Ese enunciado esta viejo, donde lo viste así lo actualizo. El enunciado es el de este apunte: https://docs.google.com/document/d/1RnmKXlQ5tdIasBmFiYFOOe8_JZMSetaT1APLLE9NGIE/edit Igual te respondo tus preguntas:
No entiendo lo contradictorio de esto, uno habra sobre lo que le pasa al comer y el otro habla si puede jugar o no . --
Precisamente eso es lo que dice el enunciado:
Exacto, podría ser una opción pero deberías ver que significa a nivel negocio, si es que no te da bola o que rompe. Asumamos que debería romper
No necesariamente. Las excepciones se usan para comunicar que hay un error, en este caso el error es que alguien mando el mensaje Creo que te estas confundiendo con el concepto de confiar en el adentro y desconfiar en el afuera. Por ejemplo, podes confiar por ejemplo que entre tus objetos no se manda NULL en los parametros por decir algo, o que estan bien construidos porque expusiste un constructor con todas las dependencias que necesita, pero deberías tener menos confianza en el formato de las cosas que te mandan de afuera, por ejemplo ingresos del usuario o respuestas de sistemas externos, en esos hay que tener menos confianza, porque no estan bajo tu control. Por otro lado creo que te esta faltando un requerimiento:
Seguramente alguien antes de mandarte el |
Beta Was this translation helpful? Give feedback.
-
Hola Gastón, muchas gracias por la pronta respuesta!! El enunciado lo saque de la seccion 3 de ejercicios de la pagina de la cursada, la cual estaba linkeada en la ultima presentacion de la clase de los viernes. Me equivoqué al explicar qué me parecía contradictorio. Me refería a que el enunciado decia:
y despues dice:
Entonces por un lado dice que si está hambrienta puede jugar, y se pone de mal humor, y por otro lado dice que no puede. De todos modos por lo que veo en el link que me compartis, esto es algo del enunciado viejo. Me quedó clarísimo lo de las excepciones, es algo que me había quedado medio colgado. Mil gracias!! |
Beta Was this translation helpful? Give feedback.
Hola Gastón, muchas gracias por la pronta respuesta!!
El enunciado lo saque de la seccion 3 de ejercicios de la pagina de la cursada, la cual estaba linkeada en la ultima presentacion de la clase de los viernes.
Me equivoqué al explicar qué me parecía contradictorio. Me refería a que el enunciado decia:
y despues dice:
Entonces por un lado dice que si está hambrienta puede jugar, y se pone de mal humor, y por otro lado dice que no puede. De todos modos por lo que veo en el link que me compartis, esto es algo del enu…