Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/05/2017, 11:48
LordMOY
 
Fecha de Ingreso: noviembre-2009
Mensajes: 11
Antigüedad: 15 años, 1 mes
Puntos: 1
Consejo en uso de Classes, por favor.

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.