http://migueljaque.com
Notas sobre Metodologías Ágiles
Estás en:   Inicio Patrones GRASP Bajo Acoplamiento
Bajo Acoplamiento PDF Imprimir E-mail
Domingo, 23 de Marzo de 2008 10:52

Hemos establecido que el objetivo principal de un patrón de diseño es la Protección Frente al Cambio. No olvidemos que la protección se consigue "facilitando los cambios", no evitándolos, porque como vimos al analizar los riesgos de un proyecto, los cambios son inevitables. ¿Cómo lo conseguimos que nuestro diseño cambie fácilmente?

Uno de los principios para protegernos frente al cambio es mantener bajo el acomplamiento entre clases. ¿Qué significa?

El acoplamiento de una clase es el conjunto de dependencias que tiene con otras clases.

Así, una clase A que deriva de B, tendrá un fuerte acoplamiento con ella. Y otra clase C, que utilice una clase D, tendrá también una relación de dependencia.

Resulta evidente que, cuanto menor sea el acoplamiento entre clases, menor influencia tendrán los cambios.

Así, un cambio en una clase A, que depende de las clases B, C y D será mucho más complejo que si la misma clase A no dependiera de ninguna otra y, por lo tanto, el cambio sólo le afectara a ella.

Mantener Bajo el Acomplamiento entre Clases, más que un patrón que se pueda implementar, es un principio que nos servirá para elegir entre alternativas de diseño: un diseño menos acomplado siempre será mejor que uno más acoplado, porque en el primero será más fácil realizar cambios.

Ejemplo:

Pongamos un ejemplo referido al modelo de dominio de una aplicación de gestión de proyectos de software.

A la hora de diseñar la clase Proyecto podemos encontrarnos con varias alternativas. Analicemos dos de ellas:

Podemos crear la clase Proyecto de modo que "utilice" un array de Acciones y un Usuario.

 

Diagrama de Clases con Acomplamiento

 

Con este diseño, la operación para conocer el nombre del Jefe de un Proyecto, se podría resolver así:

 

Diagrama de Secuencia de la operación

 

Pero también podemos hacer un diseño menos acoplado, así:

 

Diagrama de Clases con menor acoplamiento

 

Con este diseño, la misma operación verJefeProyecto se resolvería así:

 

Diagrama de Secuencia con el diseño menos acoplado


Resolvemos la operación mediante una consulta a la Base de Datos. El segundo diseño tiene un acoplamiento menor, porque la clase Proyecto no depende de la clase Usuario y, por lo tanto, soportará mejor los cambios.

 

Actualizado ( Martes, 03 de Junio de 2008 07:38 )
 

Apoyo a la Cultura Libre: Si eres legal ¡¡COMPARTE!!