UTNianos

Versión completa: 3.3 wollok mumuki[Paradigmas de programacion]
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas! Estoy con el ejercicio 3.3 de wollok de mumuki. A medio camino. Alguna idea de como implementar el method consumir?
Les muestro como vengo hasta ahora:
[attachment=15837]
Es un típico patrón "Strategy". Te recomiendo leer sobre el tema porque en paradigmas lo usas mucho aunque no lo formalizan. O sea, no te dan el tema "strategy" pero lo usas muchisimo sin saberlo. Este es un caso.

tenes que declarar una variable "rendimiento" en el deportista y en el metodo "consumir" hacer:

self.rendimiento = sustancia.rendimiento(cant)

La "estrategia" que menciona el patrón, se deba a que cada objeto "sustancia" resuelve el mensaje "rendimiento" a su manera, y esto te facilita escalar el modelo agregando muchas sustancias y haciendo en cada una su propio metodo "rendimiento", sin tenes que tocar al deportista. Estas usando conceptos fuertes del paradigmas de objetos, como el polimorfismo (todas las sustancias entienden "rendimiento"). Tambien, delegacion (delegas la responsabilidad en el objeto sustancia).

Es el primer patrón de diseño que ves justamente, en Diseño de Sistemas.

Saludos!
object georginho{
var peso=70
var consumicion
var dosis
method consumir(cant,sustancia){
consumicion=sustancia
dosis=cant
}
method velocidad(){
return consumicion.rendimiento(dosis)*490/70
}
}
object whisky{
method rendimiento(dosis){
return (0.9)**dosis
}
}
object terere{
var rendimiento
method rendimiento(dosis){
rendimiento=(0.1)*dosis
if(rendimiento>=1){
return rendimiento
}else{return "nunca rinde menos que 1"}
}}
object cianuro{
method rendimiento(dosis){ return 0}
}


me tira error nada mas el test de "consumir terere produce la velocidad deseada, cuando el rendimiento es 1 " y no se me ocurre como resolverlo
URLs de referencia