[Php-objetos] Ping Pong jeje
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Lun Feb 16 22:17:26 ART 2009
Hola Juan,
El lun, 16-02-2009 a las 20:28 -0200, Juan Marcos escribió:
>
> Hola Leo.
>
>
> > La solución a esto es facilícima: en vez de pasar al constructor
> > valores del Objeto Componente, directamente pasás una instancia del
> > Objeto y listo!
>
> Claro, eso es exactamente lo que hice! Sin embargo me lo marcaste como
> que no es el caso porque se mezcla la Agregación con la Composición.
Te marqué que vos estás mezclando composición con agregación. Según tu
comentario, decidís usar composición; tu código sigue siendo una
agregación.
Contame lo que vas a hacer otra vez... porque primero era agregación,
pero en tu segunda entrega era composición.
Temo a esta altura que hayas cambiado de opinión de vuelta, y que
estemos hablando de cosas distintas :(
> > Con la implementación que me mandaste, no hay cómo hacer que
> > getCombustible() no haga lo que hace... me parece que seguís mareado
> con
> > composición/agregación.
>
>
> Lo que quiero consultar es si tengo que cambiar el getCombustible() y
> setCombustible(), es decir, si asi como está no es como debería. ¿Debo
> hacer que el setCombustible() tome como parámetro un objeto y éste lo
> use para obtener los valores a setear del combustible? por ejemplo:
>
> class Vehiculo {
> ...
> public function setCombustible($combustible) {
> $this->combustible->setTipo($combustible->getTipo());
> $this->combustible->setValor($combustible->getValor());
> return true;
> }
>
> public function getCombustible() {
> $temp->new Combustible($this->combustible->getTipo(),
> $this->combustible->getValor());
> return $temp;
> }
>
> ...
> } // class Vehiculo
Podés hacerlo así, o podés también usar la interfaz del Objeto
Combustible y sus propios setters y getters.
Este punto es cuestión de gustos.
Sin embargo tu implementación del getCombustible() no tiene mucho
sentido, porque estás creando un Combustible nuevo a cada uso.
> Si lo hacemos de este modo los setters y los getters no
> devolverían/insertarían en sí el objeto y el combustible quedaría
> "aislado" dentro de Vehículo. ¿Es así como se deberia hacer?
Depende de que el caso sea composición, agregación u asociación.
No hay una regla general para esto.
> Esto haria como digo yo que Vehículo dependa aún más de Combustible,
> pero si esta es la forma en que se resuelve el ejercicio, lo hago asi.
Querido Juan: contame como harías para usar el Combustible y depender
menos del Objeto (?)
O para depender más... algo que me de una pista sobre lo que estás
pensando.
Como siempre en los sistemas, hay varias formas de hacer bien lo mismo.
--
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