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.
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