Facade - Tensho97/Aprende-a-Aprender GitHub Wiki

Patrón Facade


Función y Ventajas

**Función: ** El patrón Facade simplifica el acceso a un conjunto de clases proporcionando una única clase que todos utilizan para comunicarse con dicho conjunto de clases.

Ventajas

  • Los clientes no necesitan conocer las clases que hay tras la clase Facade.

  • Se pueden cambiar las clases "ocultadas" sin necesidad de cambiar los clientes. Sólo hay que realizar los cambios necesarios en Facade.

Problema

En una aplicación existen varios tipos de clases que realizan distintas funciones. Dos de estos tipos son las clases Cliente y las Clases servidoras.

El patrón Facade fue creado para atajar el siguiente problema: Si tenemos una clase Clienta ''//A//'' que usa las siguientes clases servidoras ''//B//'', ''//C//'' y ''//D//'', Como sabe la clase ''//A//'' cual es la clase que le esta proporcionando el servicio en cuestión? y ademas puede que esa clase ''//A//'' no sea la única clase cliente que exista...

Solución

La solución a este problema es proporcionar una clase que implemente todos los servicios. Todas las clases cliente usarán esa clases "Facade" para acceder a los servicios.

El diagrama de esta implementación seria el siguiente:

Facade Diagram

De este modo para cambiar/eliminar/añadir un una clase servidora solamente hay que adaptar cal clase Facade.



Autor: Miguel