Hola saludos y feliz dia para todos los que se tomaron un poquito de su tiempo para leer este post... Quiero saber como manejarian la siguiente operacion
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 $_pieza_compatible = array();
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;
private $_MemoriaRAM = array();
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