Estuvimos trabajando con este enunciado: MinionsEn particular nos detuvimos mucho en los siguientes aspectos: - Cómo encarar un problema? Por dónde arrancar la solución? Qué implicaciones tiene tomar una decisión demasiado anticipada? CuÔl es el costo de invertir las responsabilidades en el punto de entrada de nuestra solución?
- Distintas formas de encarar el punto 1 y manejo de errores en el mismo siguiendo las reglas bƔsicas que planteamos la clase pasada.
- Modelado con objetos de una misma clase vs modelado con instacias de clases distintas (tambiƩn en el contexto del punto 1)
- Herencia vs Composición: para el enunciado llegamos a las siguientes conclusiones:
- que es mĆ”s simple modelar a las razas con herencia en vez de con composición (sólo necesito un objeto para tener un empleado bĆclope o cĆclope en vez de dos, puedo usar redefinición cuando corresponda para tener un comportamiento distinto al estĆ”ndar en vez de delegar en un objeto raza)
- que los roles deben modelarse usando composición, ya que tienen que poder cambiar en tiempo de ejecución, lo cual no es posible usando herencia (el empleado deberĆa conocer su rol y delegar en el rol todo lo que tenga que ver con el mismo)
- Respecto al punto 2, planteamos una solución en la cual el empleado conoce las distintas tareas realizadas que son objetos polimórficos que saben decir cuĆ”l es la dificultad propia para un empleado, en vez de tener 2 atributos (cantidad de tareas realizadas y sumatoria de dificultades de tareas realizadas), ya que esto implicarĆa una complejidad extra para mantener consistente la solución, que es lo que tendrĆamos que hacer en el punto siguiente cuando efectivamente la tarea deberĆa llevarse a cabo.
Quedó pendiente para que resuelvan los puntos 3 (muy interesante desde el punto de vista de responsabilidades) y 4 de este parcial en base al modelo al que llegamos.
En la clase de hoy vamos a trabajar con otro parcial asà seguimos practicando la parte de modelado principalmente, que es lo que mÔs suele costar. |