Alejandro Trejo
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)
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(); }