Saltar al contenido

¿Qué es la alta cohesión y cómo usarla/hacerla?

Posterior a investigar con expertos en este tema, programadores de deferentes áreas y maestros dimos con la respuesta al problema y la dejamos plasmada en este post.

Solución:

Alta cohesión es cuando tienes una clase que hace un trabajo bien definido. La baja cohesión es cuando una clase hace muchos trabajos que no tienen mucho en común.

Tomemos este ejemplo:

Tiene una clase que suma dos números, pero la misma clase crea una ventana que muestra el resultado. Esta es una clase poco cohesiva porque la ventana y la operación de suma no tienen mucho en común. La ventana es la parte visual del programa y la función de agregar es la lógica detrás de ella.

Para crear una solución altamente cohesiva, tendría que crear una ventana de clase y una suma de clase. La ventana llamará al método de Sum para obtener el resultado y mostrarlo. De esta manera, desarrollará por separado la lógica y la GUI de su aplicación.

Una explicación de lo que es de Steve McConnell Código completo:

La cohesión se refiere a qué tan cerca están todas las rutinas en una clase o todo el código en una rutina. apoyar un propósito central. Clases que contienen
funcionalidad fuertemente relacionada se describen como que tienen una fuerte cohesión, y el objetivo heurístico es hacer que la cohesión sea lo más fuerte posible. La cohesión es una herramienta útil para administrar la complejidad porque cuanto más código en una clase respalda un propósito central, más fácilmente su cerebro puede recordar todo lo que hace el código.

Alguna forma de lograrlo del tío Bob código limpio:

Las clases deben tener un pequeño número de variables de instancia. Cada uno de los métodos de una clase debe manipular una o más de esas variables. En general Cuantas más variables manipula un método, más cohesivo es ese método. a su clase. Una clase en la que cada variable es utilizada por cada método es máximamente cohesiva.

En general, no es aconsejable ni posible crear clases tan cohesionadas al máximo; por otro lado, nos gustaría que la cohesión fuera alta. Cuando la cohesión es alta, significa que los métodos y las variables de la clase son codependientes y se unen como un todo lógico.

La noción de cohesión está fuertemente relacionada con la noción de acoplamiento; además, existe un principio basado en la heurística de alta cohesión, denominado Principio de Responsabilidad Única (la S de SOLID).

Alta cohesión es un concepto de ingeniería de software. Básicamente, dice que una clase solo debe hacer lo que se supone que debe hacer, y lo hace completamente. No lo sobrecargues con funciones que se supone que no debe hacer, y cualquier cosa directamente relacionada con él tampoco debería aparecer en el código de alguna otra clase.

El ejemplo es bastante subjetivo, ya que también tenemos que considerar la escala. Un programa simple no debe modularizarse demasiado o se fragmentará; mientras que un programa complejo puede necesitar más nivel de abstracciones para hacerse cargo de la complejidad.

por ejemplo, clase de correo electrónico. Debe contener miembros de datos a, desde, cc, bcc, asunto, cuerpo y puede contener estos métodos saveAsDraft(), send(), descarteDraft(). Pero login() no debería estar aquí, ya que hay una serie de protocolos de correo electrónico y debería implementarse por separado.

Si crees que te ha resultado de ayuda nuestro post, te agradeceríamos que lo compartas con otros programadores de este modo contrubuyes a dar difusión a este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *