[Php-objetos] Ejercicio 1

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Mie Feb 18 23:18:52 ARST 2009


Hola Andrés,

El mié, 18-02-2009 a las 22:46 -0200, Andres Manuel escribió:
> Hola leo como estas ???. ya lo sé, estas bien, jajaja
> Bueno te envio el fuente imcompleto, ya estaria terminada la clase 
> combustible, vehiculos y auto.
> Pickup y camion van por el mismo camino que auto, pero quiero que me 
> digas si voy bien para no terminar y terminarlo mal.

	Viene bien.
	Te cuento unos detalles para mejorarlo:

* Vehículos debería llamarse Vehículo: no es lo mismo muchas cosas que
una cosa... parece una pavada, pero cuando uno piensa usando una palabra
incorrecta, piensa en cosas incorrectas y se complica...

* Estás validando tipos con is_string() y is_float(). No hace falta si
el constructor inicializa los atributos del tipo correcto. Recordá que
PHP no es tipado, pero sí define tipos con la primer asignación. Además
el código validado es mucho mejor pero más engorroso de leer... una
mejor aproximación es definir clases para los tipos primitivos y que el
método quede por ejemplo: function setTipo(String $tipo=null) para que
el casting te lo haga el intérprete.

* En esta misma línea quedaría mucho mejor y más claro 
function __construct(Combustible $combustible,$plazas=null,
$cantRuedas=null,$consumoPorKm=null)
Así solo podés pasar un Objeto de clase Combustible. Preguntar is_object
no sirve para nada, porque pasa con _cualquier_ objeto. Además primero
asignás y despúes levantas la excepción, así que el valor ya queda...

* La importante: si cambio atributos de la instancia $combus, el
atributo dentro de $auto también cambia. Salvo que lo justifiques de
buena manera, este comportamiento no es el esperado y la relación entre
Auto y Combustible está mal definida.

> Gracias y Saludos...

	Por nada!
-- 
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