Pregunta

¿Cuáles son Cohesión y desacoplamiento? He encontrado información sobre el acoplamiento, pero no se trata de desacoplamiento.

¿Fue útil?

Solución

Ese artículo de Aaron es muy bueno para la comprensión, también le recomiendo que lea la dotación de publicaciones Primavera en Acción libro, que dan muy buenos ejemplos de cómo las resuelve ese problema primavera que sin duda va a mejorar su comprensión de esto.

EDIT:

Me encontré con esto en este gran libro llamado creciente de software orientado a objetos guiado por pruebas:

Acoplamiento:

Elementos se acoplan si un cambio en una fuerza un cambio en el otro. por ejemplo, si dos clases heredan de una padre común, entonces un cambio en uno clase podría requerir un cambio en la otro. Pensar en un sistema de audio combinado: Está estrechamente unida porque si querer cambiar de analógico a digital la radio, hay que reconstruir la totalidad sistema. Si montamos un sistema de se separa, tendría bajo acoplamiento y pudiéramos intercambiar el receptor. características “apretar” acoplados (Es decir, aquellos con acoplamiento bajo) son más fácil de mantener.

Cohesión:

Un elemento de cohesión es una medida de si sus responsabilidades forman una unidad significativa. Por ejemplo, una clase que analiza las dos fechas y direcciones URL no es coherente, porque son ajenos conceptos. Pensar en una máquina que lava dos ropa y los platos, que es poco probable que hacer ambas cosas well.2 Al otro extremo, una clase que analiza Sólo la puntuacion en un URL es poco probable que sea coherente, porque no representa un concepto totalmente. A hacer nada, el programador tiene que encontrar otros programas de análisis para protocolo, host, recursos, y así sucesivamente. Características con coherencia “alta” son más fácil de mantener.

Otros consejos

Cohesión - relacionado con el principio de que una clase / método debería ser responsable de sólo una cosa es decir que no hay métodos callejeros que no pertenecen en la encapsulación; un método sólo hace una cosa. Alta / baja cohesión es el grado en que esto se mantiene.

Acoplamiento - cómo diferentes partes interdependientes del sistema son. por ejemplo cómo y dónde existen dependencias. Si dos clases hacen llamadas a los métodos de la otra entonces están estrechamente unidas, como el cambio de uno significaría tener que cambiar a la otra. El desacoplamiento es el proceso de hacer algo que estaba estrechamente unida por lo menos, o nada en absoluto.

Los sistemas flexibles tienen alta cohesión y acoplamiento ligero.

Para el acoplamiento, este artículo de Wikipedia debe responder a todas sus preguntas. Este artículo trata sobre la cohesión .

"desacoplamiento" es sólo otro nombre para "pequeño / bajo acoplamiento".

Así que estos términos responden a estas preguntas:

  • ¿Cuánto cuesta cada parte de su proyecto depende de la otra parte?
  • Si desea utilizar sólo una parte de su proyecto (como para resolver un problema específico) ¿cuánto se necesita saber acerca de todo el resto del proyecto?
  • ¿Es cada parte de su proyecto se centró en una única solución a un problema específico o no soluciones "fuga" a otras partes?

Aquí están mis pensamientos sobre la cohesión. Imagina que hay un módulo. Dentro de ese módulo, tenemos algunas tareas. Cuando estas tareas están muy relacionadas entre sí, decimos que tiene alta cohesión. Cuando esas tareas no están relacionados, decimos que tiene baja cohesión. Mi mejor intento de explicar la disociación es que la disociación es el acto de la eliminación de acoplamiento.

Bajo Acoplamiento nos ayuda a alta cohesión! Recuerde que queremos nuestro módulo para tener tareas relacionadas y una sola responsabilidad. Pero lo que es el acoplamiento? El acoplamiento es el grado de dependencia de los otros módulos para alcanzar nuestra única responsabilidad de ese módulo. Así por acoplamiento bajo, estamos diciendo que no somos muy dependientes de módulos externos, por tanto, tenemos gran cohesión.

Sin embargo, si tenemos muchas dependencias a módulos externos, tendríamos alta acoplamiento y baja cohesión. Conseguirlo?

Otros pensadores y grupos más decoradas dicen:

La cohesión es el grado en que las tareas realizadas por un único módulo están relacionados funcionalmente. "IEEE 1983" cohesión es el 'pegamento' que mantiene un módulo juntos. Puede ser pensado como el tipo de asociación entre los elementos componentes de un módulo. En general, uno quiere que el más alto nivel de cohesión posible ". Hesse, 1981

Un componente de software se dice que exhiben un alto grado de cohesión si los elementos de esa unidad exhiben un alto grado de relación funcional. Esto significa que cada elemento de la unidad de programa deben ser esencial para que la unidad cumpla con su finalidad. Sommerville, 1989

desacoplamiento permite la separación de la interacción de objetos de clases y herencia en distintas capas de abstracción utilizados para polimórfica-aliado desacoplar la encapsulación, que es la práctica de utilizar código reutilizable para evitar que los módulos de código discretos de interactuar unos con otros.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top