Saludos colegas. Tengo años de programar en PHP pero no tanto de basar mi desarrollos en el uso de Objetos, se me viene encima un proyecto grande y quiero su consejo para ver si esta es la forma correcta de hacerlo.
Voy a simplificarlo con el siguiente ejemplo.
Código PHP:
class Auto {
public $TanqueGasolina = new TanqueGasolina();
public $Motor = new Motor();
// Funciones del Auto
}
class TanqueGasolina extends Auto {
public $Gasolina = 100;
// Funciones del Tanque de gas
}
class Motor extends Auto {
public $Estado = "Apagado";
public function Encender() {
// AQUI EMPIEZAN MIS DUDAS
}
Supongamos que para "Encender()" el motor, necesito comprobar que el tanque tenga gasolina, puedo acceder a ese valor con algo como:
Código PHP:
$this->TanqueGasolina->Gasolina;
(Creo... la verdad es que ya ise tantas pruebas que traigo un nido de ideas en la cabeza)
¿Esta es la forma correcta de hacerlo?
Por que, si hago un print_r() de Auto, las dos sub-classes cargan de nuevo los valores del padre, y no se si eso sea bueno para el rendimiento, tampoco me queda claro que pasa si modifico un valor "padre" desde un "hijo", ¿repercute en todas las sub-classes?
La otra opción es manejar cada cosa como una Clase individual, pero si hago eso, no puedo acceder a los valores de otra si no es pasandolos en cada función. Tendria que ser algo como:
Código PHP:
$this->Motor->Enceder($this->TanqueGasolina->Gasolina);
El problema de esto, es que cada clase tendra tantas funciones y atributos que dependen unos de otros, que esto lo veo muy complicado a la hora de mantener (o tratar de) "orden" en el código.
Les voy a agradecer infinitamente su ayuda o consejos, si saben de alguna literatura que deba de leer sobre un modelo de código, o algún consejo basado en experiencia... cualquier cosa es bienvenida. No quisiera iniciar el desarrollo y toparme en seco por estructurar mal desde un inicio.
Perdón por la biblia de explicación, pero es lo mas simple que se me ocurre. Saludos y de antemano, gracias.