[C#]Patrón Facade

Javier Torrecilla
Jtorrecilla .NET
Published in
1 min readNov 15, 2016

Este es uno de esos patrones que se utiliza de manera bastante frecuente.

Definición

Va a ser una clase de alto nivel que nos aportara un punto de acceso para diversas interfaces facilitando el uso de las mismas.

Al turrón!

Mas vale que veamos un ejemplo, no?

Vamos a partir de una situación, muy común, donde tenemos un Pedido y sus lineas de pedido (simplificadas para el ejemplo)

Tendremos una interfaz para representar el repositorio de cada entidad:

Por otro lado, tendremos una interfaz que llevara a cabo las tareas de Logging, y otra que se encargará de enviar datos a un servicio de tracking:

Como veis tenemos 4 interfaces que exponen funcionalidades útiles pero que a su vez pueden llegar a exponer cierta complejidad para usarlas.

Ahora vamos a definir una “Fachada” o Facade:

Podemos ver que en el constructor, vamos a inyectar las cuatro interfaces que hemos indicado anteriormente, y que tenemos una serie de métodos que exponen las funcionalidades de las interfaces que comentábamos, del mismo modo evita exponer la complejidad de las operaciones que se llevan a cabo.

Nos permitirá exponer únicamente la fachada, y utilizar IOC y DI para nutrir de los objetos necesarios para el funcionamiento de la misma.

Espero que os sea de utilidad.

--

--

Javier Torrecilla
Jtorrecilla .NET

Geek, Map 2010, MCC 2011, MVP C# 2011/12 Msdn Forum MOD