16-02-2015, 05:40
Hola a todos.
Entiendo en general como usar y cuando usar el patron ( o sea, entiendo la parte de delegar, encapsular y demas )
Pero hay algunas cosas que no me quedan claras.
Piensen en un banco. Tengo cuentas. Una cuenta puede estar en diferentes estados. O sea, normal(luego de haberla creado), silver(saldo de mas de 20k y menos de 50k), y gold ( saldo de mas de 50k).
Obviamente, en una cuenta puedo depositar y extraer.
Cada vez que deposito o extraigo hay que ver en que estado queda la cuenta.
1) Quien tiene la responsabilidad de hacer el cambio de estado ? Justifique
a) La clase Cuenta ( a traves de ifs internos luego de realizar tanto extract como deposit )
b) Cada estado ( haciendo uso del metodo pasarAEstado: de la clase cuenta )
2) Vi que algunas implementaciones usan una variable de instancia por cada estado en la clase Cuenta.
O sea, en vez de tener la variable estado, tiene una referencia a cada estado ( normal, silver, gold).
Porque es necesario eso ? No hay que tener solamente una referencia a estado y listo ?
3) Cada estado deberia tener una referencia a la clase Cuenta, o la clase cuenta deberia pasarse a si misma como parametro cuando delega una operacion a un estado ?
O sea, es mejor
a) this.estado.hacerExtraccion(this) ( aca la cuenta se pasa a si misma como parametro cuando llama a estado)
b) this.estado.hacerExtraccion() ( aca, obviamente, como dije, cada estado tiene una referencia a la cuenta )
Justifique
Saludos y gracias desde ya.
Entiendo en general como usar y cuando usar el patron ( o sea, entiendo la parte de delegar, encapsular y demas )
Pero hay algunas cosas que no me quedan claras.
Piensen en un banco. Tengo cuentas. Una cuenta puede estar en diferentes estados. O sea, normal(luego de haberla creado), silver(saldo de mas de 20k y menos de 50k), y gold ( saldo de mas de 50k).
Obviamente, en una cuenta puedo depositar y extraer.
Cada vez que deposito o extraigo hay que ver en que estado queda la cuenta.
1) Quien tiene la responsabilidad de hacer el cambio de estado ? Justifique
a) La clase Cuenta ( a traves de ifs internos luego de realizar tanto extract como deposit )
b) Cada estado ( haciendo uso del metodo pasarAEstado: de la clase cuenta )
2) Vi que algunas implementaciones usan una variable de instancia por cada estado en la clase Cuenta.
O sea, en vez de tener la variable estado, tiene una referencia a cada estado ( normal, silver, gold).
Porque es necesario eso ? No hay que tener solamente una referencia a estado y listo ?
3) Cada estado deberia tener una referencia a la clase Cuenta, o la clase cuenta deberia pasarse a si misma como parametro cuando delega una operacion a un estado ?
O sea, es mejor
a) this.estado.hacerExtraccion(this) ( aca la cuenta se pasa a si misma como parametro cuando llama a estado)
b) this.estado.hacerExtraccion() ( aca, obviamente, como dije, cada estado tiene una referencia a la cuenta )
Justifique
Saludos y gracias desde ya.