miércoles, 24 de agosto de 2011

Uso de Interfaces en aplicaciones n-capas

 

Hola a todos.

Ayer tuve una discusión sana con mi compañero Sergio (podéis seguir su magnífico blog aquí), acerca de las arquitecturas n-capas, y más concretamente del uso de “interfaces“para la comunicación entre capas.

La discusión giraba en torno a lo que es una “Interfaz”, como concepto,  en el contexto de comunicaciones entre capas. La idea que primero nos viene a la cabeza, es que la interfaz es lo que la capa expone a modo de servicios (métodos y clases públicas) para comunicarse con otras capas.

Y si bien esa idea es completamente correcta y cierta, tenemos que tener en cuenta que las interfaces (entendidas aquí como elementos dentro de una programación orientada a objetos), también nos proporcionan un contrato a cumplir por las clases que las implementen. ejemplos los tenemos a miles (IComparable, IEnumerable, IQueryable, .. y unas cuantas más)

Pues bien, el propósito de este post es mostrar cómo las interfaces nos pueden ayudar a conseguir cierto nivel de desacoplamiento entre capas, con todos los beneficios que eso nos trae: testeabilidad, división de responsabilidades, y otros muchos.

Bueno, vamos al turrón.