martes, 8 de junio de 2010

Facade (patrón de diseño)

Facade (patrón de diseño)

Facade, façade o fachada es un patrón de diseño que sirve para proveer de una interfaz unificada sencilla que haga de intermediaria entre un cliente y una interfaz o grupo de interfaces más complejas.

Facade puede hacer una biblioteca de software más fácil de usar y entender, ya que facade implementa métodos convenientes para tareas comunes; hacer el código que usa la biblioteca más legible, por la misma razón; puede reducir la dependencia de código externo en los trabajos internos de una biblioteca, ya que la mayoría del código lo usa Facade, permitiendo así más flexibilidad en el desarrollo de sistemas; y puede envolver una colección mal diseñada de APIs con un solo API bien diseñado.



Problemas que soluciona
Problema: Un cliente necesita acceder a parte de la funcionalidad de un sistema más complejo.

Definir una interfaz que permita acceder solamente a esa funcionalidad.
Problema: Existen grupos de tareas muy frecuentes para las que se puede crear código más sencillo y legible.

Definir funcionalidad que agrupe estas tareas en funciones o métodos sencillos y claros.
Problema: Una biblioteca es difícilmente legible.

Crear un intermediario más legible.
Problema: Dependencia entre el código del cliente y la parte interna de una biblioteca.

Crear un intermediario y realizar llamadas a la biblioteca sólo o, sobre todo, a través de él.
Problema: Necesidad de acceder a un conjunto de APIs, que pueden, además, tener un diseño no muy bueno.

Crear una API intermedia, bien diseñada, que permita acceder a la funcionalidad de las demás.
Cuidado: Facade debe utilizarse para crear clases sencillas, no clases que "sirvan para todo" o "lo hagan todo".



Facade (patrón de diseño) - Wikipedia, la enciclopedia libre

No hay comentarios: