Brandon Juárez Rosas
// Fabrica abstracta
// Fabrica concreta - comida
setAtributosProducto($nombre,$vendedor,$marca,$precio,$detalles,$estado);
return ($p);
break;
case 2:
$p = new Alimento();
$p->setAtributosProducto($nombre,$vendedor,$marca,$precio,$detalles,$estado);
return ($p);
break;
default:
return (false);
break;
}
}
}
?>
// Fabrica concreta - tecnología
setAtributosProducto($nombre,$vendedor,$marca,$precio,$detalles,$estado);
return ($p);
break;
case 2:
$p = new Celular();
$p->setAtributosProducto($nombre,$vendedor,$marca,$precio,$detalles,$estado);
return ($p);
break;
case 3:
$p = new Periferico();
$p->setAtributosProducto($nombre,$vendedor,$marca,$precio,$detalles,$estado);
return ($p);
break;
default:
return (false);
break;
}
}
}
?>
// Fabrica concreta - obsequios
setAtributosProducto($nombre,$vendedor,$marca,$precio,$detalles,$estado);
return ($p);
break;
case 2:
$p = new Prenda();
$p->setAtributosProducto($nombre,$vendedor,$marca,$precio,$detalles,$estado);
return ($p);
break;
case 3:
$p = new Souvenir();
$p->setAtributosProducto($nombre,$vendedor,$marca,$precio,$detalles,$estado);
return ($p);
break;
default:
return (false);
break;
}
}
}
?>
// Super clase producto
nombre;
}
public function getVendedor() {
return $this->vendedor;
}
public function getMarca() {
return $this->marca;
}
public function getPrecio() {
return $this->precio;
}
public function getDetalles() {
return $this->detalles;
}
public function getEstado() {
return $this->estado;
}
// Setters
public function setNombre($nombre) {
$this->nombre = $nombre;
}
public function setVendedor($vendedor) {
$this->vendedor = $vendedor;
}
public function setMarca($marca) {
$this->marca = $marca;
}
public function setPrecio($precio) {
$this->precio = $precio;
}
public function setDetalles($detalles) {
$this->detalles = $detalles;
}
public function setEstado($estado) {
$this->estado = $estado;
}
public function setAtributosProducto($nombre,$vendedor,$marca,$precio,$detalles,$estado){
$this->nombre = $nombre;
$this->vendedor = $vendedor;
$this->marca = $marca;
$this->precio = $precio;
$this->detalles = $detalles;
$this->estado = $estado;
}
}
?>
// Clase concreta Peluche
ancho;
}
public function getAlto(){
return $this->alto;
}
public function getMaterial(){
return $this->material;
}
public function setAncho($ancho){
$this->ancho = $ancho;
}
public function setAlto($alto){
$this->alto = $alto;
}
public function setMaterial($material){
$this->material = $material;
}
public function setAtributos($ancho, $alto){
$this->ancho = $ancho;
$this->alto = $alto;
}
}
?>
// Clase concreta Prenda
talla;
}
public function getCorte(){
return $this->corte;
}
public function setTalla($talla){
$this->talla = talla;
}
public function setCorte($corte){
$this->corte = corte;
}
public function setAtributos($talla, $corte){
$this->talla = $talla;
$this->corte = $corte;
}
}
?>
// Clase concreta Bebida
contenidoNeto;
}
public function getSabor(){
return $this->sabor;
}
public function setContenidoNeto($contenidoNeto){
$this->contenidoNeto = $contenidoNeto;
}
public function setSabor($sabor){
$this->sabor = sabor;
}
public function setAtributos($contenidoNeto,$sabor){
$this->contenidoNeto = $contenidoNeto;
$this->sabor = $sabor;
}
}
?>
// Clase concreta Alimento
tamanio;
}
public function getCantidad(){
return $this->cantidad;
}
public function setTamanio($tamanio){
$this->tamanio = $tamanio;
}
public function setCantidad($cantidad){
$this->cantidad = $cantidad;
}
public function setAtributos($tamanio,$cantidad){
$this->tamanio = $tamanio;
$this->cantidad = $cantidad;
}
}
?>
// Clase concreta Souvenir
ancho;
}
public function getAlto(){
return $this->alto;
}
public function getMaterial(){
return $this->material;
}
public function setAncho($ancho){
$this->ancho = $ancho;
}
public function setAlto($alto){
$this->alto = $alto;
}
public function setMaterial($material){
$this->material = $material;
}
public function setAtributos($ancho, $alto, $material){
$this->ancho = $ancho;
$this->alto = $alto;
$this->material = $material;
}
}
?>
// Clase concreta Computadora
ram;
}
public function getProcesador(){
return $this->procesador;
}
public function getBateria(){
return $this->bateria;
}
public function getAlmacenamiento(){
return $this->almacenamiento;
}
public function setRam($ram){
$this->ram = $ram;
}
public function setProcesador($procesador){
$this->procesador = $procesador;
}
public function setBateria($bateria){
$this->bateria = $bateria;
}
public function setAlmacenamiento($almacenamiento){
$this->almacenamiento = $almacenamiento;
}
public function setAtributos($ram,$procesador,$bateria,$almacenamiento){
$this->ram = $ram;
$this->procesador = $procesador;
$this->bateria = $bateria;
$this->almacenamiento = $almacenamiento;
}
}
?>
Hola a tod@s ! Paso por aquí para compartirles la implementación del patrón abstract factory en el lenguaje PHP, el cual nos encargamos de desarrollar en esta segunda parte de la UEA PIS2. Anteriormente, subí el diagrama de clases de este caso de estudio pero para esas instancias aún no teníamos listo el código, por lo que mi sugerencia para el sistema SMART-DPF es que sería muy útil si el usuario tuviera a su alcance una funcionalidad para poder "editar" los casos de estudio que ha subido a la plataforma, sería muy útil en caso de querer complementarlo con algo extra sin necesidad de subir una nueva publicación o eliminar la anterior.
Comments (1)
¡Excelente día Brandon! Primero que nada muchas gracias por tus comentarios, nos ayudan a crecer y mejorar. La funcionalidad de actualizar casos de estudio estará disponible el día 6 de mayo del 28/04/2022 gracias a su retroalimentación. ¡Saludos!