[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