RSS

Orientación a Objetos (VIII) – Acoplamiento y Cohesión

16 Jun

Uno de los objetivos más importantes del diseño orientado a objetos es conseguir una alta cohesión entre clases y un bajo acoplamiento.

¿Qué es la cohesión?
La medida que indica si una clase tiene una función bien definida dentro del sistema. El objetivo es enfocar de la forma más precisa posible el propósito de la clase. Cuanto más enfoquemos el propósito de la clase, mayor será su cohesión.

Una prueba fácil de cohesión consiste en examinar una clase y decidir si todo su contenido está directamente relacionado con el nombre de la clase y descrito por el mismo.

Una alta cohesión hace más fácil:

  • Entender qué hace una clase o método
  • Usar nombres descriptivos
  • Reutilizar clases o métodos

 

¿Qué es el acoplamiento?
El acoplamiento entre clases es una medida de la interconexión o dependencia entre esas clases.

El acoplamiento fuerte significa que las clases relacionadas necesitan saber detalles internos unas de otras, los cambios se propagan por el sistema y el sistema es posiblemente más difícil de entender.

Por ello deberemos siempre intentar que nuestras clases tengan un acoplamiento bajo. Cuantas menos cosas conozca la clase A sobre la clase B, menor será su acoplamiento.

Lo ideal es conseguir que la clase A sólo conozca de la clase B lo necesario para que pueda hacer uso de los métodos de la clase B, pero no conozca nada acerca de cómo estos métodos o sus atributos están implementados.

Los atributos de una clase deberán ser privados y la única forma de acceder a ellos debe ser a través de los métodos getter y setter.

Un bajo acoplamiento permite:

  • Entender una clase sin leer otras
  • Cambiar una clase sin afectar a otras
  • Mejora la mantenibilidad del código

Para saber más:
Msdn Magazine – Cohesión y acoplamiento
Cohesion and Coupling Metrics(1)
Cohesion and Coupling Metrics(2)

Anuncios
 
4 comentarios

Publicado por en 16 junio, 2011 en Estudio, Tema 2

 

Etiquetas: , , , , , ,

4 Respuestas a “Orientación a Objetos (VIII) – Acoplamiento y Cohesión

  1. Wladdy

    7 mayo, 2014 at 12:03 am

    No existe Acoplamiento alto o bajo.

    Existe Acoplamiento fuerte o debil
    Existe Cohesión alta o baja,

     
  2. fabi hermoza ortiz (@hermoza_fabi)

    9 noviembre, 2013 at 4:45 pm

    si deberían dejar ejemplos para entender mejor la lógica

     
  3. Serrano_10

    10 marzo, 2013 at 8:03 pm

    Gracias Gracias Gracias!!!! En una semana tengo el OCJP, espero conseguirlo!!!

     
  4. amaurys00

    2 octubre, 2012 at 7:53 pm

    Deberian dejar ejemplos para poder entender.. pero esta bien hecha la explicacion.

     

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: