Estructura y Reduce la complejidad del sistema en subsistemas,
minimizando las comunicaciones y dependencias entre ellos. Se usa cuando se desea desacoplar un subsistema, hacindolo independiente, portable y reutilizable. Cuando se desea una interfaz simple de un subsistema complejo Componentes
Facade: Conoce cuales clases del subsistema son responsables de
una peticin y delega las peticiones de los clientes en los objetos del subsistema.
Clases del subsistema: Implementan la funcionalidad del
subsistema, manejan el trabajo asignado por el objeto Facade y ademas de esto no tienen ningn conocimiento del Facade. Funcionamiento
Los clientes que se comunican con el subsistema enviando peticiones al
objeto Fachada, el cual las reenva a los objetos apropiados del subsistema. Los objetos del subsistema realizan el trabajo final, y la fachada hace algo de trabajo para pasar de su interfaz a las del subsistema. Los clientes que usan la fachada no tienen que acceder directamente a los objetos del subsistema. Patrn de diseo Flyweight
Elimina redundancia cuando se tiene gran cantidad de objetos que
contienen informacin idntica. Mejora el rendimiento del sistema. Se usa cuando la memoria es crtica para el rendimiento de la aplicacin. La aplicacin no depende de la identidad de los objetos.