Editing Combined Patterns New


Patrón facade


Date: 11:29am on Thursday 28th April 2022

Alejandro Trejo

Responsive image


            	
            		

gestorCarrito = $gestorCarrito ?: new GestorDeCarrito(); $this->gestorCompras = $gestorCompras ?: new GestorDeCompras(); $this->gestorCuenta = $gestorCuenta ?: new GestorDeCuenta(); $this->gestorPagos = $gestorPagos ?: new GestorDePagos(); $this->gestorProductos = $gestorProductos ?: new GestorDeProducto(); $this->gestorRegalos = $gestorRegalos ?: new GestorDeRegalos(); $this->gestorReportes = $gestorReportes ?: new GestorDeReportes(); $this->gestorUsuarios = $gestorUsuarios ?: new GestorDeUsuarios(); $this->gestorVentas = $gestorVentas ?: new GestorDeVentas(); $this->gestorWishlist = $gestorWishlist ?: new GestorDeWishlist(); } // Facade del gestor whislist public function agregarProductoWhislistAl($alumno, $producto) { $this->gestorWishlist->agregarProductoAl($alumno, $producto); } public function agregarProductoWhislistAd($administrador, $producto) { $this->gestorWishlist->agregarProductoAd($administrador, $producto); } public function agregarProductoWhislistEx($externo, $producto) { $this->gestorWishlist->agregarProductoEx($externo, $producto); } public function eliminarProductoWhislistAl($alumno, $producto) { $this->gestorWishlist->eliminarProductoAl($alumno, $producto); } public function eliminarProductoWhislistAd($administrador, $producto) { $this->gestorWishlist->eliminarProductoAd($administrador, $producto); } public function eliminarProductoWhislistEx($externo, $producto) { $this->gestorWishlist->eliminarProductoEx($externo, $producto); } // Fcade del gestor carrito public function agregarProductoCarritoAl($alumno, $producto) { $this->gestorWishlist->agregarProductoAl($alumno, $producto); } public function agregarProductoCarritoAd($administrador, $producto) { $this->gestorWishlist->agregarProductoAd($administrador, $producto); } public function agregarProductoCarritoEx($externo, $producto) { $this->gestorWishlist->agregarProductoEx($externo, $producto); } public function eliminarProductoCarritoAl($alumno, $producto) { $this->gestorWishlist->eliminarProductoAl($alumno, $producto); } public function eliminarProductoCarritoAd($administrador, $producto) { $this->gestorWishlist->eliminarProductoAd($administrador, $producto); } public function eliminarProductoCarritoEx($externo, $producto) { $this->gestorWishlist->eliminarProductoEx($externo, $producto); } // Facade gestor de compras public function verCompras($id) { $this->gestorCompras->verCompras($id); } // Facade gestor de ventas public function verVentas($id) { $this->gestorVentas->verVentas($id); } // Facade gestor de cuentas public function iniciarSesionAl($alumno) { $this->gestorCuenta->iniciarSesionAl($alumno); } public function iniciarSesionAd($administrador) { $this->gestorCuenta->iniciarSesionAd($administrador); } public function iniciarSesionEx($externo) { $this->gestorCuenta->iniciarSesionEx($externo); } public function registrarCuentaAl($alumno) { $this->gestorCuenta->registrarCuentaAl($alumno); } public function registrarCuentaAd($administrador) { $this->gestorCuenta->registrarCuentaAd($administrador); } public function registrarCuentaEx($externo) { $this->gestorCuenta->registrarCuentaEx($externo); } public function eliminarCuentaAl($alumno) { $this->gestorCuenta->eliminarCuentaAl($alumno); } public function eliminarCuentaAd($administrador) { $this->gestorCuenta->eliminarCuentaAd($administrador); } public function eliminarCuentaEx($externo) { $this->gestorCuenta->eliminarCuentaEx($externo); } public function modificarCuentaAl($cambio, $alumno) { $this->gestorCuenta->modificarCuentaAl($cambio, $alumno); } public function modificarCuentaAd($cambio, $administrador) { $this->gestorCuenta->modificarCuentaAd($cambio, $administrador); } public function modificarCuentaEx($cambio, $opcion, $externo) { $this->gestorCuenta->modificarCuentaEx($cambio, $opcion, $externo); } // Facade gestor de pagos public function agregarTarjeta($alumno, $noTarjeta, $banco, $nombre) { $this->gestorPagos->agregarTarjeta($alumno, $noTarjeta, $banco, $nombre); } public function eliminarTarjeta($alumno, $noTarjeta, $banco, $nombre) { $this->gestorPagos->eliminarTarjeta($alumno, $noTarjeta, $banco, $nombre); } public function pagar($alumno, $noTarjeta, $banco, $nombre) { $this->gestorCuenta->modificarCuentaAd($alumno, $noTarjeta, $banco, $nombre); } // Facade gestor productos public function agregarAlimento($producto) { $this->gestorProductos->agregarAlimento($producto); } public function agregarPrenda($producto) { $this->gestorProductos->agregarPrenda($producto); } public function agregarOtro($producto) { $this->gestorProductos->agregarOtro($producto); } public function agregarElectronico($producto) { $this->gestorProductos->agregarElectronico($producto); } public function agregarPeluche($producto) { $this->gestorProductos->agregarPeluche($producto); } public function eliminarAlimento($producto) { $this->gestorProductos->agregarAlimento($producto); } public function eliminarPrenda($producto) { $this->gestorProductos->agregarPrenda($producto); } public function eliminarOtro($producto) { $this->gestorProductos->agregarOtro($producto); } public function eliminarPeluche($producto) { $this->gestorProductos->agregarPeluche($producto); } public function eliminarElectronico($producto) { $this->gestorProductos->agregarElectronico($producto); } // Facde gestor regalos public function crearRegalo($destinatario, $apellidoP, $userForm, $monto, $tarjeta) { $this->gestorRegalos->crearRegalo($destinatario, $apellidoP, $userForm, $monto, $tarjeta); } public function eliminarRegalo(int $vendedor, float $precio, int $destino) { $this->gestorRegalos->eliminarRegalo($vendedor, $precio, $destino); } public function verRegalos(int $destino) { $this->gestorRegalos->verRegalos($destino); } // Facde gestor reporte public function crearReporteAl($reporte, $usuario){ $this->gestorReportes->crearReporteAl($reporte, $usuario); } public function crearReporteEx($reporte, $usuario){ $this->gestorReportes->crearReporteEx($reporte, $usuario); } public function eliminarReporte($reporte){ $this->gestorReportes->eliminarReporte($reporte); } public function verReporte($reporte){ $this->gestorReportes->verReporte($reporte); } public function modificarReporte($nuevoMotivo, $reporte){ $this->gestorReportes->modificarReporte($nuevoMotivo, $reporte); } } function cliente(SuperGestor $superGestor) { $superGestor->registrarCuentaAl("Alejandro"); }


Esta es la aplicación del patrón fachada para facilitar el acceso a los gestores en la fachada superGestor

Comments (1)



@Alejandro | 2022-04-28

El sistema corto esta parte pero la dejo en comentarios class SuperGestor { protected $gestorCarrito; protected $gestorCompras; protected $gestorCuenta; protected $gestorPagos; protected $gestorProductos; protected $gestorRegalos; protected $gestorReportes; protected $gestorUsuarios; protected $gestorVentas; protected $gestorWishlist; public function __construct( GestorDeCarrito $gestorCarrito, GestorDeCompras $gestorCompras, GestorDeCuenta $gestorCuenta, GestorDePagos $gestorPagos, GestorDeProducto $gestorProductos, GestorDeRegalos $gestorRegalos, GestorDeReportes $gestorReportes, GestorDeUsuarios $gestorUsuarios, GestorDeVentas $gestorVentas, GestorDeWishlist $gestorWishlist ) { $this->gestorCarrito = $gestorCarrito ?: new GestorDeCarrito(); $this->gestorCompras = $gestorCompras ?: new GestorDeCompras(); $this->gestorCuenta = $gestorCuenta ?: new GestorDeCuenta(); $this->gestorPagos = $gestorPagos ?: new GestorDePagos(); $this->gestorProductos = $gestorProductos ?: new GestorDeProducto(); $this->gestorRegalos = $gestorRegalos ?: new GestorDeRegalos(); $this->gestorReportes = $gestorReportes ?: new GestorDeReportes(); $this->gestorUsuarios = $gestorUsuarios ?: new GestorDeUsuarios(); $this->gestorVentas = $gestorVentas ?: new GestorDeVentas(); $this->gestorWishlist = $gestorWishlist ?: new GestorDeWishlist(); }