Facade proporciona una interfaz unificada a un conjunto de interfaces de un sistema, define una interfaz de alto nivel que hace al sistema más fácil de usar.
Así se simplifica el acceso a un conjunto de objetos proporcionando uno que todos los clientes pueden usar para comunicarse con el conjunto, su objetivo es minimizar las comunicaciones y dependencias entre subsistemas.
Características generales de este patrón:
Nombre:
Facade.
También conocido como:
Façade.
Propósito:
Facade proporciona una interfaz unificada a un conjunto de interfaces de un sistema, define una interfaz de alto nivel que hace al sistema más fácil de usar.
Aplicabilidad:
Este patrón se utiliza generalmente cuando:
· Desea proporcionar una interfaz simple a un subsistema complejo.
· Hay muchas dependencias entre los clientes y la implementación de una abstracción de clases. Introducir una fachada para desacoplar el subsistema de los clientes y otros subsistemas, promoviendo así la independencia y portabilidad al subsistema.
· Desee que su capa subsistemas, use una fachada para definir un punto de entrada a nivel de cada subsistema. Si los subsistemas son dependientes, entonces se puede simplificar las dependencias entre ellos por lo que se comunican entre sí únicamente a través de sus fachadas.
Estructura:

Participantes:
· Facade: La clase para que los clientes utilicen. Se sabe de los subsistemas que utiliza sus respectivas responsabilidades. Normalmente todas las solicitudes de cliente se delegará a los subsistemas.
· Subsistema: Se trata de un conjunto de clases, pueden ser utilizadas por los clientes directamente o a través del trabajo que les asigna la fachada; No tiene conocimiento de la fachada, para el subsistema, la fachada será igual a otro cliente.
Consecuencias:
· Oculta a los clientes los componentes del subsistema, reduce el número de objetos con los que tienen que tratar los clientes.
· Disminuye el acoplamiento entre un subsistema y sus clientes:
v Un menor acoplamiento facilita el cambio de los componentes del subsistema
v sin afectar a sus clientes
v Las fachadas permiten estructurar el sistema en capas
v Reduce las dependencias de compilación
· No evita que las aplicaciones puedan usar las clases del subsistema si lo necesitan, se puede elegir entre facilidad de uso y generalidad.
Patrones relacionados:
· Abstract Factory.
· Mediator.
· Singleton.
Etiquetas: Facade, Patrones Estructurales, Structural patterns