viernes, 4 de diciembre de 2015

Alta Cohesión y Bajo Acomplamiento, ¿Que es eso?

La primera vez que escuche el termino, me pareció algo extraño, pero se refiere a un término usado en la ingeniería de software que determina que al desarrollar las clases deben contar con métodos que les permitan sobrevivir por si solas , que no se apeguen a otros objetos en sus llamados, que si al realizar un cambio en una clase que es llamada por otras clases , esto no sea de alto impacto, por ejemplo , la adición de una nueva propiedad, no debe afectar ningún método.

¿Qué es cohesión?

Concepto aplicado al diseño de clases que hacen que esta, solo se dedique a una cosa en especial y que trabajará en conjunto con otras clases y librerías, pero sin perder la esencia para lo cual fue creada.

Es muy importante este concepto para Ingenieros y Desarrolladores debido a que en ocasiones he encontrado código creado que hace mil cosas, esto hace que la clase sea muy grande, difícil de enriquecer y sin el concepto de COHESIÓN.

Ejemplo: Analicemos un modelo de datos en el cual debemos mantener empleados y sus respectivos salarios.



Este último modelo obviamente es mejor porque piensa en el empleado y el salario como dos clases distintas con comportamiento propio.


¿Qué es acoplamiento?

Acoplamiento corresponde a como está relacionado un componente con otro y como un cambio puede afectarle en su comportamiento al resto de componentes, en otras palabras está dado por la dependencia entre una y otra clase, por eso es que en la medida en que podamos debemos buscar el más BAJO ACOPLAMIENTO, para no caer en que al modificar una clase, se afecte el comportamiento de otra.


Ejemplo: Analicemos el modelo de datos anterior y si vamos a crear una consulta de Empleado la forma correcta, seria usar sus propios atributos para filtrar los datos y evitar enviar muchos parámetros en la cabecera del método.


Aquí los llamados a los métodos




Alguien podría decir, pero los dos funcionan y vaya que es CIERTO!, pero existe una gran diferencia, un modelo el modelo con ALTA COHESIÓN Y BAJO ACOPLAMIENTO, crecerá más fácil , mantendrá las responsabilidades entre sus componentes y será menos costoso su mantenimiento a mediano y largo plazo.





No hay comentarios:

Publicar un comentario