Tengo una clase Padre Pieza y una serie de clases hijas como Procesador, Chipset y RAM lo que quiero saber es como ustedes consideran la compatibilidad de piezas entre Chipset y Procesador? en mi caso en la clase padre hice una relacion involutiva(Clase que se llama dentro de si en un metodo) para manejar este tipo de compatibilidad de piezas ya que una tarjeta madre puede soportar diferentes procesadores
la pregunta del millon es: ¿Como lo estoy manejando es factible o es redundante?
me gustaria conocer su percepcion
sin mas que decir me despido y adjunto el codigo
Código PHP:
Ver original
//-------------------- CLASE PIEZA class Pieza{ public $nombre; public $modelo; protected function Agregar_P($n,$m){ $this->nombre = $n; $this->modelo = $m; } public function __toString(){ return $this->nombre.' '.$this->modelo; } protected function Agregar_Pieza_Compatible(Pieza $piezaC){ $this->_pieza_compatible[] = $piezaC; } } //-------------------- CLASE TARJETA MADRE class Chipset extends Pieza{ public function Agregar($a,$b){ parent::Agregar_P($a,$b); } public function compatibilidad(Pieza $p){ parent::Agregar_Pieza_Compatible($p); } } //-------------------- CLASE PROCESADOR class Procesador extends Pieza{ public function Agregar($a,$b){ parent::Agregar_P($a,$b); } } //-------------------- CLASE RAM class RAM extends Pieza{ public function Agregar($a,$b){ parent::Agregar_P($a,$b); } } //-------------------- CLASE PC class PC{ private $_procesador; private $_TarjeMadre; public function Agg_Chip(Chipset $tm){ $this->_TarjeMadre = $tm; } public function Agg_RAM(RAM $memoria){ $this->_MemoriaRAM[] = $memoria; } public function Agg_Pro(Procesador $procss){ $this->_procesador = $procss; } } $TM = new Chipset;// Tarjeta Madre $procesador = new Procesador;// Procesador $procesador2 = new Procesador;// Procesador $M = new RAM;// Memoria RAM $TM->Agregar('Chipset Intel® X99','ABC-123');// Agregamos una Nueva Tarjeta Madre $procesador->Agregar('Intel® Core™ i7','LGA2011-v3 Socket');// Agregamos un Procesador $procesador2->Agregar('Intel® Core™ i7','LGA2050-v4 Socket');// Agregamos un Procesador $M->Agregar('Kingston ARQ','TF-950');// Agregamos Nueva Memoria RAM // Le Agregamos las piezas que son compatibles con la tarjeta Madre INTEL C600 $TM->compatibilidad($procesador); $TM->compatibilidad($procesador2); $TM->compatibilidad($M); // Construimos el PC $PC = new PC; $PC->Agg_Chip($TM); $PC->Agg_Pro($procesador); $PC->Agg_RAM($M); echo "<hr>";
PD = la clase PC es para construir la Computadora segun las partes que posee