[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