Con éste inicio una serie de artículos dedicados a los patrones de diseño software más útiles, conocidos y comunes.  Empiezo con uno, según mi opinión,  de los más importantes (conjuntamente con el patrón alta cohesión). Ambos patrones nos permiten diseñar aplicaciones en las cuales las responsabilidades están correctamente distribuidas, permitiendo un fácil mantenimiento y extensibilidad del software.

Podemos definir el acoplamiento software como el número de relaciones que una entidad software (una clase, por ejemplo) tiene con otras entidades software o, dicho de otra forma, el número de relaciones fuertes (strong relations) que tiene una clase.
Para aclarar el concepto, fijémosnos en las siguientes figuras:

coupled class 

La primera de ellas nos muestra una clase fuertemente acoplada. Como puede observarse, la clase A tiene relaciones con las clases B, C, D, E y F. En este caso diríamos que la clase A es una clase con un alto acoplamiento.

 uncoupled

La segunda imagen nos muestra una clase A con un bajo acoplamiento, ya que tiene muy pocas relaciones fuertes con otras entidades.

Ahora que el concepto de acoplamiento está definido, podemos realizarnos la pregunta de cómo afecta el acoplamiento a nuestro desarrollo software. A la vista de los diagramas mostrados anteriormente queda claro que, si en cualquier momento es necesario modificar alguna funcionalidad de la clase A, en el caso de que se encuentre fuertemente acoplada es más que probable que nos veamos obligados a modificar alguna de las clases con las que se encuentra relacionada, lo que hace que la modificación de la clase sea más dificultosa.
Sin embargo, si nos encontramos en el contexto de la segunda imagen, la modificación de la clase A será, seguro, mucho más simple.
El patrón bajo acoplamiento, bien aplicado, permite que nuestras entidades software sean más mantenibles, extensibles y reutilizables, ya que tienen perfectamente definidas las responsabilidades y eso permite que puedan ser reutilizadas en cualquier otro contexto, siempre que la funcionalidad que se les demande sea la misma.

En definitiva, el patrón bajo acoplamiento nos indica que debemos asignar correctamente las responsabilidades de cada entidad de forma que cada una de éstas tiene asignadas únicamente las responsabilidades que puede llevar a cabo con los datos que ésta tiene disponibles.

Como siempre, espero que os sea de utilidad y os resulte interesante. Hasta Pronto! :)

 

About these ads