domingo, 10 de mayo de 2009
Facade

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:

Un menor acoplamiento facilita el cambio de los componentes del subsistema

sin afectar a sus clientes

Las fachadas permiten estructurar el sistema en capas

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: , ,

 
posted by Camilo Mojica at 14:01 | Permalink |


0 Comments: