[Php-objetos] Juan Marcos Re: Corrección ejercicio 2.2 (Fé de erratas)

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Dom Feb 15 01:27:14 ART 2009


Hola Juan,

	No te dije en el mail anterior, pero está muy cómodo para mi el
comentario al principio del código con tu nombre, el ejercicio y el
enunciado, además de tus comentarios.

	Está tan cómodo que les voy a pedir a todos que me entreguen así!!!
Gracias!

El sáb, 14-02-2009 a las 22:49 -0200, Juan Marcos escribió:
> No se bien por qué parece que no se adjuntó el archivo, va de vuelta.

	Ahora llegó.
> 
> ______________________________________________________________________
> From: malditared en hotmail.com
> To: leonardot en pegasusnet.com.ar
> Subject: Corrección ejercicio 2.2
> Date: Sat, 14 Feb 2009 22:47:05 -0200
> 
> Leo, te paso para que veas como hice el ejercicio 2, probé que
> funciona, pero me gustaria saber si uso bien el tema de los Iterators,
> o por lo menos de la forma que esperás que los usemos.

	Una pequeña salvedad: creeme que la idea no es hacer las cosas "como yo
espero", sino como dicen los que inventaron todo esto que se hace, que
es lo que quiero transmitirles en las clases.
	La idea es estar de acuerdo con lo que los grandes de los Objetos (Eric
Gamma, Rebecca Wirft-Brook, Ken Beck, Gustavo Rossi y otros citados en
la bibliografía del apunte).

	Me puedo equivocar, como toda persona, por eso quiero que si con algo
no están de acuerdo, traigan un libro que lo explique de otra manera
para ver alternativas.
	Ese libro espero sea escrito por un grande de este tema, y no un
artículo en la Users o alguna otra informalidad por el estilo. Pueden en
esta oración reemplazar "libro" por "página web" que da lo mismo.
Aprendamos de los que más saben!!! Sobre todo en Objetos que el tema dió
y da para mucha guitarra...

	Aclaración por esto de la cosa escrita: no escribí lo anterior ni
enojado ni ofendido ni nada por el estilo. Solo quise aprovechar la
ocasión para contarles que seguimos una metodología y guías de mejores
prácticas hechas por los que más saben de esto.

----------------------------

________________________________________________________________________
	Vamos al código:

	public function depositar($importe) {
		if ($importe <= 0)
			return false;
		else {
			$this->saldo += $importe;
			return true;
		}
	}

	Si un método falla, debe levantar una excepción, no devolver "false".
	Si no levantás una excepción, no podés delegar el manejo del error en
cualquiera, sino que tenés que manejarlo sí o sí en el que llama al
método.

	// Si no se pasa un parámetro, se obtiene el saldo total del banco.
	public function getSaldo($titular = null) {

	Esto es Horrible. Con mayúscula.
	Creaste un método que según el parámetro cambia su comportamiento!!!
	Además a nivel de implementación, estás recorriendo la colección para
devolver el saldo de una cuenta, en vez de buscar ese elemento con los
mecanismos del lenguaje para hacerlo.

	Además tu implementación de getSaldo depende para su funcionamiento del
nombre del titular, así que si tenés titulares homónimos, les devolvés
el saldo sumado.

	Un método getSaldo() en la clase Cuenta, debe devolver el saldo de
_una_ cuenta.
	Fijate que incluso en tu código, creás 3 cuentas y las agreguás al
banco, pero al consultarlas solo podés consultar 2... se te perdió una
cuenta por ahí adentro de tu banco...

	Otra: en Banco llevás la cuenta de la cantidad de cuentas, pero no la
usás para nada. Ergo es un atributo que sobra en tu implementación.

	En cuanto lo tengas, espero tus correcciones.
	Saludos!

-- 
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