Cohésion et découplage

Quelqu'un peut-il me dire ce que sont la cohésion et le découplage? J'ai trouvé le couplage mais il n'y a pas de découplage nulle part. J'ai besoin d'apprendre leur signification.

Toute aide sera appréciée. Merci pour la réponse.

34
demandé sur dbtek 2010-05-21 15:26:04

6 réponses

Cet article D'Aaron est très bon pour la compréhension, aussi je vous recommande de lire Manning publicationsprintemps en Action Livre, ils donnent de très bons exemples sur la façon dont le printemps résout ce problème, il va certainement améliorer votre compréhension de cela.

Modifier:

Je suis tombé dessus dans ce grand livre intitulé Growing object oriented software guidé par des tests:

Couplage :

Les éléments sont couplés si un changement l'une des forces d'un changement dans l'autre. Pour exemple, si deux classes héritent d'une parent commun, puis un changement dans un la classe peut nécessiter un changement dans autre. Pensez à un système audio combo: Il est étroitement couplé parce que si nous vous voulez passer de l'analogique au numérique radio, nous devons reconstruire le tout système. Si nous assemblons un système à partir de sépare, il aurait un faible couplage et nous pourrions juste échanger le récepteur. Caractéristiques" vaguement " couplées (c.-à-d., ceux avec le bas couplage) sont plus facile à maintenir.

Cohésion:

La cohésion d'un élément est une mesure de savoir si ses responsabilités unité significative. Par exemple, une classe qui analyse à la fois les dates et les URL ne l'est pas cohérent, parce qu'ils ne sont pas liés concept. Pensez à une machine qui lave les vêtements et la vaisselle-c'est peu probable de faire les deux bien.2 À l' autre extrême, une classe qui analyse seule la ponctuation dans une URL est peu probable d'être cohérent, parce qu'il ne représente pas un concept. De obtenir quelque chose fait, le programmeur sera trouver d'autres analyseurs pour protocole, hôte, ressource, et ainsi de suite. Les caractéristiques avec une cohérence "élevée" sont plus facile à maintenir.

71
répondu ant 2018-01-16 20:11:30

De la Cohésion du principe qu'une classe/méthode devrait être responsable pour une seule chose je.e il n'y a errants méthodes qui n'appartiennent pas à l'encapsulation; une méthode ne fait qu'une seule chose. La cohésion haute / basse est le degré auquel cela est valable.

Couplage - comment les différentes parties du système sont interdépendantes. par exemple, comment et où il y a des dépendances. Si deux classes font des appels à des méthodes l'une de l'autre, elles sont étroitement couplées, car en changer une signifierait avoir à changement de l'autre. Le découplage est le processus de fabrication de quelque chose qui était étroitement couplé moins, ou pas du tout.

Les systèmes flexibles ont une cohésion élevée et un couplage lâche.

11
répondu Robert 2010-05-21 11:54:39

Cohésion : La cohésion est le principe OO le plus étroitement associé à s'assurer qu'une classe est conçue avec un but unique et bien ciblé.

Accouplement: Le couplage fait référence au degré auquel une classe connaît ou utilise les membres d'une autre classe.

3
répondu Amine Sagaama 2015-07-04 17:13:45

Pour le couplage, cet article de Wikipédia devrait répondre à toutes vos questions. Cet article traite de la cohésion.

"Découplage" est juste un autre nom pour "petit/faible couplage".

Donc ces termes répondent à ces questions:

  • Combien chaque partie de votre projet dépend d'une autre partie?
  • Si vous voulez utiliser juste une partie de votre projet (comme pour résoudre un problème spécifique) combien devez-vous savoir sur tout le reste de la projet?
  • chaque partie de votre projet se concentre-t-elle sur une solution unique à un problème spécifique ou les solutions "fuient" - elles vers d'autres parties?
2
répondu Aaron Digulla 2010-05-21 12:15:18

Voici mes réflexions sur la cohésion. Imaginez qu'il y ait un module. Dans ce module, nous avons quelques tâches. Lorsque ces tâches sont étroitement liées les unes aux autres, nous disons qu'elles ont une grande cohésion. Lorsque ces tâches ne sont pas liées, nous disons qu'il a une faible cohésion. Ma meilleure tentative d'expliquer le découplage est que le découplage est l'acte d'enlever le couplage.

Un faible couplage nous aide à atteindre une cohésion élevée! Rappelez-vous que nous voulons que notre module ait des tâches connexes et une seule responsabilité. Mais qu'est-ce que couplage? Le couplage est le degré de dépendance à l'égard d'autres modules pour atteindre notre seule responsabilité pour ce module. Donc, par un faible couplage, nous disons que nous ne sommes pas très dépendants des modules externes, d'où une forte cohésion.

Cependant, si nous avons beaucoup de dépendances aux modules externes, nous aurions un couplage élevé et une faible cohésion. Pour l'obtenir?

D'autres penseurs et groupes plus décorés disent:

Cohésion est le degré auquel les tâches effectuées par un seul module sont fonctionnellement liés."IEEE, 1983" cohésion est la "colle" qui maintient un module ensemble. Il peut être considéré comme le type d'association entre les éléments constitutifs d'un module. En général, on veut le plus haut niveau de cohésion possible."Bergland, 1981

On dit Qu'un composant logiciel présente un degré élevé de cohésion si les éléments de cette unité présentent un degré élevé de relation fonctionnelle. Cela signifie que chaque élément de l'unité de programme devrait être essentiel pour cette unité pour atteindre son objectif. Sommerville, 1989

0
répondu hidden 2017-08-20 07:55:49

Le découplage permet de séparer l'interaction objet des classes et de l'héritage en couches distinctes d'abstraction utilisées pour découpler polymorphe-ally l'encapsulation qui est la pratique d'utiliser du code réutilisable pour empêcher les modules de code discrets d'interagir les uns avec les autres.

-2
répondu user2716139 2013-08-25 20:04:48