[Php-objetos] Juan Re: Entrega ejercicio 2.3
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Jue Mar 5 03:03:00 ARST 2009
Hola Juan,
El mar, 03-03-2009 a las 10:35 -0300, Juan Marcos Rigoli escribió:
> Aca vá, espero que este bien encaminado jeje. Saludos!
Vas bien encaminado.
Para mi gusto, estás implementando algunas cosas no pedidas, y esto
siempre es un arma de doble filo...
No me parece correcta esta generalización:
- Para limitar las extracciones de $100 diarios de las cuentas
universitarias un método puede
** ser llevar un registro de los movimientos de las transacciones de
la cuenta, al igual que en
** el caso del límite de extracciones mensuales. Como ésto es
fundamental para el control de
** cualquier cuenta bancaria, se implementó en todas las cuentas.
No es cierto que esto sea fundamental para todas las cuentas bancarias!
Las Cuentas Corrientes no lo tienen.
Fijate que esto te fuerza a poner una semántica ficticia "Si el límite
de extracciones mensuales de Cuenta Corriente es 0, no se limita la
cantidad." y cómo se hace en tu sistema para tener una Cuenta Corriente
con un descubierto pactado de Cero??? Es un caso muy común: te dan una
Cta Cte para librar cheques, etc, pero no te dan descubierto.
Esto ya lo hablamos, pero el manejo de los movimientos es más de lo que
pide el ejercicio, pero por separado para depósitos y extracciones es
complicado y no aporta nada que yo vea.
O el revoleo que hacés con la hora de verano no tiene sentido, y me
hace falta esa explicación que prometés.
Me parece que en persona en vez de por acá: me aguanto hasta el
Sábado. ;-)
Esta implementación va a contramano de lo legible:
public function extraer($importe) {
parent::extraer($importe);
if (($this->limiteDescubierto != 0) && (abs($this->saldo - $importe) >
$this->limiteDescubierto))
throw new Exception("El retiro excede el límite del giro en
descubierto de la cuenta.");
$this->saldo -= $importe;
$this->extracciones->addMov($importe);
}
Uno primero valida y después llama al método heredado!!!
En tu caso el metodo heredado solo tiene un validación, y la
implementación es correcta, pero leer esto hace pensar que primero hacés
la cosa general, después validás, y después decidís si hacés la cosa
particular o no... parece incoherente.
Para agrupar ese comportamiento creá un método "validarExtracción() y
usalo para hacer la validación.
Nos vemos!
--
Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
Más información sobre la lista de distribución Php-objetos