[Php-objetos] Gonzalo Re: Correccion Ejercicio 2 Clase 2
.txalo.
txalomdq en gmail.com
Mie Mar 11 21:09:13 ARST 2009
Leo:
Bueno, en rigor, para separar un Modelo y una Vista hace falta
> también
> un Controlador.
> Me parece más sano no decorar los errores que implementar tan mal un
> MVC...
Ah ta bien! Ya se que lo que hice es una bosta! Tampoco me lo digas asi. Se
que esta mal implementado.
Dejemoslo ahi!
Mi querido Gonzalo: este ejercicio ES un ejercicio REAL.
> Si te parece que hay comportamiento repetido, modelalo en una clase.
> Desde que se inventó el copiar y pegar, no hay absolútamente ninguna
> excusa para hacer un híbrido en esta etapa tan temprana del uso de los
> objetos.
> Una desilusión...
Jua jua! Bueno perdon, despues las saco, o veo si se puede modelar una
clase.
Ni suman ni restan... cuando se escribe solo el modelo, ver la
> excepción en el navegador es lo habitual.
> Estás manejando las excepciones para... a ver... para ningún
> comportamiento del sistema. Lo útil de las excepciones que un código, de
> interceptarla, podría HACER ALGO como volver atrás una operación,
> invocar a otro objeto... esto no solo es superfluo, sino que además lo
> implementaste mal, con esas funciones que escribiste.
Bien, entiendo. Pero la operacion no se concreta hasta que no esta todo
bien.
> Ambas cosas hacen exactamente lo mismo. No veo mejor ni peor, salvo
> cuestión de gustos.
> De echo en tu ejemplo podrías haber seguido usando $cuanta1,
> $cuanta2 y
> $cuenta3, ya que al ser una agregación, siempre se trata del mismo
> objeto. Es decir, hay 3 formas de escribir esto en tu ejercicio.
Ok!. Era para no crear tantas variables auxiliares.
>
> > 5. Creo que eso es todo ...
>
> No por acá... tenés esto:
>
> public function extraer($cantidad){
> if ($cantidad > $this->getDiario()){
> $error = "El maximo permitido es de ".$this->getDiario().".";
> $error .= ($this->getSaldo() < $this->getDiario()) ? "
> Disponible: $ ".$this->getSaldo() : " Disponible: $".$this->getDiario();
> throw new Exception ($error);
> }elseif ($cantidad > $this->getDiario()){
> $error = "La suma excede su limite de $100 diarios.";
> $error .= ($this->getSaldo() < $this->getDiario()) ? "
> Disponible: $ ".$this->getSaldo() : " Disponible: $".$this->getDiario();
> throw new Exception ($error);
> /*}elseif ($cantidad > $this->getSaldo()){
> throw new Exception ('Saldo insuficiente. Disponible: $
> '.$this->getSaldo().'.');*/
> }else{
> parent::extraer($cantidad);
> $this->diario -= $cantidad;
> }
> }
>
> sacando que los mensajitos de excepción son completamente floridos
> para
> estar en el Modelo, si no veo mal, preguntás 2 veces por lo mismo:
> ($cantidad > $this->getDiario())
Jua jua! De donde salio eso?? que estaria pensando ... ahora lo miro.
Jejejeje.
>
>
> Juan, en un exceso de prolijidad, preguntaba si el día o el mes
> había
> cambiado según la cuenta. Tu código no tiene en cuenta que el tiempo
> pasa. No hace falta que lo escribas, pero me interesa que quede claro.
SI! YA LO SEEEEEEE!!!!! Ojala dispusiera de tiempo para hacerlo completo y
bien.
>
>
> Por último, deberías haber sospechando que la cantidad de IF en
> extraer() viene creciendo, lo que significa alguna cosa... te paso mi
> implementación de extraer(), que entre otras cosas funciona casi sin
> cambio para los 3 tipos de cuenta:
>
> public function extraer($unMonto){
> if (puedeExtraer($unMonto) {
> parent::extraer($unMonto);
> // alguna actualización relativa a esta cuenta en
> particular,
> //como actualizar el límite o la cantidad de extracciones
> }
> }
Y en puedeExtraer($unMontoto) deberian estar los if?? Habia pensado algo
asi, pero bueh.
>
>
> Saludos!!
>
> PD: ni las galletitas caseras te salvarán de haber escrito funciones
dentro del código }:->
Re PD:Ja ja ja! el sabado no comes y tampoco hay mates para vos ....
Saludos
GNZ
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/cgi-bin/mailman/private/php-objetos/attachments/20090311/f92c0fdd/attachment.htm
Más información sobre la lista de distribución Php-objetos