¡Necesitamos el paquete para entregar! Pero no estamos seguros de si hay que llevarlo a laMatrix
o al puenteDeBrooklyn
, un nuevo destino que deja entrar a todo lo que pese hasta una tonelada (1000 kilos).
El paquete puede ser entregado por un mensajero si puede entrar al destino indicado y además el paquete está pago.
Queremos saber si el paquete puede ser entregado por neo
. Por cierto, neo
vuela, así que no pesa nada
Definí al paquete (inicialmente con destino la matrix y sin pagar) y agregá lo necesario para que se pueda realizar:
paquete.pagar() //hace que el paquete quede pago paquete.estaPago() //devuelve true, porque se pagó por el paquete paquete.puedeSerEntregadoPor(neo) //devuelve true, porque neo tiene credito y puede llamar y el paquete está pago paquete.destino(puenteDeBrooklyn) //cambia el destino del paquete paquete.puedeSerEntregadoPor(neo) //devuelve true, porque neo pesa menos de 1000 kilos y sigue estando pago el paquete
La decisión de dejar entrar o no a un mensajero es de la matrix y el puente, el paquete puede delegarle a ellos esa responsabilidad. Les puede preguntar y cada uno responde como le corresponda.
¡Polimorfismo !
Tenés que iniciar sesión antes de empezar a enviar tus soluciones