Saltar al contenido

Diferencia entre cohesión y acoplamiento

Solución:

Cohesión se refiere a lo que puede hacer la clase (o módulo). Una cohesión baja significaría que la clase realiza una gran variedad de acciones: es amplia, no está enfocada en lo que debe hacer. Alta cohesión significa que la clase se centra en lo que debería estar haciendo, es decir, solo en métodos relacionados con la intención de la clase.

Ejemplo de baja cohesión:

-------------------
| Staff           |
-------------------
| checkEmail()    |
| sendEmail()     |
| emailValidate() |
| PrintLetter()   |
-------------------

Ejemplo de alta cohesión:

----------------------------
| Staff                   |
----------------------------
| -salary                 |
| -emailAddr              |
----------------------------
| setSalary(newSalary)    |
| getSalary()             |
| setEmailAddr(newEmail)  |
| getEmailAddr()          |
----------------------------

Como para acoplamiento, se refiere a cuán relacionadas o dependientes son dos clases / módulos entre sí. Para las clases acopladas bajas, cambiar algo importante en una clase no debería afectar a la otra. El acoplamiento alto dificultaría el cambio y el mantenimiento de su código; dado que las clases están muy unidas, hacer un cambio podría requerir una renovación completa del sistema.

Un buen diseño de software tiene alta cohesión y acoplamiento bajo.

Cohesión es la indicación de la relación dentro de un módulo.

Acoplamiento es la indicación de las relaciones Entre módulos.

ingrese la descripción de la imagen aquí

Cohesión

  • La cohesión es la indicación de la relación dentro del módulo.
  • La cohesión muestra la fuerza funcional relativa del módulo.
  • La cohesión es un grado (calidad) en el que un componente / módulo se centra en una sola cosa.
  • Mientras diseña, debe esforzarse por lograr una alta cohesión, es decir, un componente / módulo cohesivo que se centre en una sola tarea (es decir, una mentalidad única) con poca interacción con otros módulos del sistema.
  • La cohesión es el tipo de extensión natural de la ocultación de datos, por ejemplo, una clase que tiene todos los miembros visibles con un paquete que tiene visibilidad predeterminada. La cohesión es un concepto intramódulo.

Acoplamiento

  • El acoplamiento es la indicación de las relaciones entre módulos.
  • El acoplamiento muestra la dependencia / interdependencia relativa entre los módulos.
  • El acoplamiento es un grado en el que un componente / módulo está conectado a los otros módulos.
  • Al diseñar, debe esforzarse por lograr un bajo acoplamiento, es decir, la dependencia entre los módulos debe ser menor
  • Hacer campos privados, métodos privados y clases no públicas proporciona un acoplamiento flexible.
  • El acoplamiento es un concepto entre módulos.

revisa este enlace

Alta cohesión dentro de módulos y acoplamiento bajo Entre Los módulos a menudo se consideran relacionados con la alta calidad en los lenguajes de programación OO.

Por ejemplo, el código dentro de cada clase de Java debe tener una alta cohesión interna, pero estar lo más débilmente acoplado posible al código de otras clases de Java.

Capítulo 3 de La construcción de software orientada a objetos de Meyer (segunda edición) es una gran descripción de estos problemas.

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



Utiliza Nuestro Buscador

Deja una respuesta

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