Proposito | Proporciona una interfaz unificada para un conjunto de interfaces de un subsistema. Define una interfaz de alto nivel que hace que
el subsistema sea más fácil de usar |
Motivacion | -Estructurar un sistema en subsistemas ayuda a reducir la
complejidad
– Un objetivo clásico en diseño es minimizar la comunicación y
dependencias entre subsistemas
– Un modo de lograr esto es introduciendo un objeto fachada que
proporcione una interfaz única y simplificada para los servicios
más generales del subsistema |
Aplicar cuando | - Queramos proporcionar una interfaz simple para un subsistema
complejo
- Haya muchas dependencias entre los clientes y las clases que
implementan una abstracción
- Queramos dividir en capas nuestros subsistemas |
Pros | - Oculta a los clientes los componentes del subsistema, reduciendo así el
número de objetos con los que traten los clientes y haciendo que el
subsistema sea más fácil de usar
- Promueve un débil acoplamiento entre el subsistema y los clientes
- No impide que las aplicaciones utilicen clases del subsistema si es
necesario |
Cons | - Nuevas operaciones de los componentes deben promocionar hacia la
interfaz de la fachada |