[Php-objetos] Reentrega sobre el pucho - Ejercicio 2.2
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Vie Feb 20 23:52:47 ARST 2009
Hola Juan,
El vie, 20-02-2009 a las 18:18 -0300, Juan Marcos Rigoli escribió:
> Leo! No leas el código anterior, apenas te lo mandé encontré una forma
> de que todo esto no pase.
Te dije en el mail que no lo leí ;-)
> Lo que hice fue:
Hay un error raro en el código: cuando devuelve el idCuenta de la
primera está vacío, la segunda muestra un 2 y la tercera está vacío de
vuelta.
En el código creas dos veces el Banco... mal... pero saqué el segundo y
sigue fallando.
> - No tiene sentido cambiar el nro de cuenta Por eso que se le asigna
> en la creación del objeto y no se puede modificar.
Bien, ahora, de dónde saca ese número la cuenta para el new ???
(pregunta retórica, abajo está la respuesta)
> - Agregué un método en Banco que me da el próximo numero de cuenta
> libre (para usarlo en la creación de la cuenta).
Se la pide al Banco. Ok, el Banco la sabe, pero... es necesario que el
Banco se lo diga a otro? O es parte de su estado interno y puede
funcionar sin revelar este dato?
Qué pasa cuando en el sistema se crean dos cuentas, y luego se las
agrega al Banco? Tu solución repite el numero y después el segundo
AgregarCuenta() falla.
> - El banco para consistencia de datos, espera que al agregar la
> cuenta, el número de ésta sea la próxima cuenta libre. Para que
> coincida el índice de la colección con el numero de cuenta.
Correcto, lo valida, pero luego es posible usar las clases y hacer que
falle sin, aparentemente violar las interfaces.
El caso que te cuento es este:
...
$b = new Banco();
$c1 = new CuentaBancaria($b->nextCuenta(), "Cuenta 1");
$c2 = new CuentaBancaria($b->nextCuenta(), "Cuenta 2");
$b->agregarCuenta($c1);
$b->agregarCuenta($c2); // esta falla....
...
Ese código no tiene nada mal en el uso de tus interfaces, pero el
segundo no funciona.
Cómo se podría cambiar para que nadie tenga que llamar a nextCuenta() y
funcione igual???
> Espero que esto esté mejor, saludos!
Sí! Está mucho mejor!
PD: y cómo se cambia el saldo de una Cuenta una vez que ya se agregó al
banco?
--
Leonardo Tadei
leonardot en pegasusnet.com.ar
Pegasus Tech Supply
Tel: (+54)(+223) 471-2880
La Salle 1131 - Mar del Plata - Argentina
http://www.pegasusnet.com.ar / http://blog.pegasusnet.com.ar
http://www.prometeustech.com.ar / http://www.grupopegasus.com
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
Más información sobre la lista de distribución Php-objetos