martes, 3 de marzo de 2015

Cohesión y Acoplamiento en Java

El acoplamiento y la cohesión son factores fundamentales que debemos tener en cuenta a la hora de diseñar nuestras clases en Java y en cualquier lenguaje que usemos si estamos usando programación orientada a objetos.

Cuando hablamos de acoplamiento nos estamos refiriendo a la interconectividad que hay entre las clases, es decir, cómo las clases interactúan entre ellas para hacer funcionar nuestra aplicación.

Al referirnos a cohesión estamos describiendo cuanto se ajusta nuestra clase o nuestro código a la tarea que tiene que hacer.

Por tanto en una aplicación bien diseñada debemos buscar un bajo acoplamiento y una alta cohesión en las clases.

Bajo acoplamiento para hacer que unas clases no dependan de otras y no tengamos que estar pendientes de que las modificaciones que hagamos en una puedan afectar a otras clases. Por eso un buen diseño debe perseguir siempre el menor acoplamiento posible entre las clases facilitando así tareas de mantenimiento, futuras actualizaciones, etc.

Para conseguir un bajo acoplamiento se usa lo que se conoce por encapsulamiento, el encapsulamiento es ocultar la información de la implementación y dejar solo visible a las otras clases lo que puede hacer pero no cómo lo hace. Esto tiene la ventaja de que si ninguna clase depende del código interno de la misma podemos cambiar facilmente su interior sin necesidad de modificar las otras clases que la usan.

Y alta cohesión para que cada clase sea responsable de una única tarea bien definida y no sea la misma clase la que se encarga de numerosas tareas dificultando así las posteriores ediciones que queramos hacer, tareas de mantenimiento, busqueda de errores, etc

Por tanto podemos afirmar que un buen diseño de una aplicación siempre debe buscar un bajo acoplamiento y una alta cohesión en sus clases. Haciéndolo así las tareas de mantenimiento, ampliación, etc serán mucho más fáciles de hacer.

Cualquier duda ya sabéis, no dudéis en ponerla en los comentarios.

No hay comentarios:

Publicar un comentario