Question

Qu'est-ce que sont la cohésion et Découplage? J'ai trouvé des informations sur le couplage, mais pas de découplage.

Était-ce utile?

La solution

Cet article d'Aaron est très bon pour la compréhension, aussi je vous recommande de lire les publications Printemps 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 ce sujet.

EDIT:

Je suis tombé sur ce dans ce grand livre intitulé Growing logiciel orienté objet guidé par des tests:

Coupling:

  

Les éléments sont couplés si un changement de   une force un changement de l'autre. Pour   Par exemple, si deux classes héritent d'un   parent commun, puis un changement dans un   classe peut nécessiter un changement dans la   autre. Pensez à un système audio combo:   Il est étroitement couplé parce que si nous   veulent passer de l'analogique au numérique   radio, nous devons reconstruire l'ensemble   système. Si nous assemblons un système de   SEPARE, il aurait couplage faible   et nous pourrions échanger la   destinataire. « Librement » caractéristiques couplées   (À savoir, ceux ayant un faible couplage) sont   plus facile à maintenir.

Cohésion:

  

Un élément de cohésion est une mesure   si ses responsabilités forment un   unité significative. Par exemple, une classe   qui parse les deux dates et les URL ne sont pas   cohérente, parce qu'ils sont sans rapport avec   concepts. Pensez à une machine   lave les vêtements et la vaisselle, il est   peu probable de faire les deux well.2 Au   autre extrême, une classe qui parse   seule la ponctuation dans une URL est   peu de chances d'être cohérent, car il   ne représente pas un concept. À   faire quoi que ce soit fait, le programmeur   trouver d'autres parseurs pour   protocole, hôte, ressources, et ainsi de suite.   Caractéristiques avec cohérence « haut » sont   plus facile à maintenir.

Autres conseils

Cohésion - liée au principe selon lequel une classe / méthode devrait être responsable d'une chose que i.e. il n'y a pas de méthodes errants qui ne appartiennent pas à l'encapsulation; une méthode ne fait qu'une seule chose. cohésion élevée / faible est le degré auquel cela est.

Couplage - comment différentes parties interdépendantes du système sont. comment et où par exemple il y a des dépendances. Si deux classes font appel à des méthodes de l'autre ils sont couplés étroitement, comme le changement signifierait un devoir changer l'autre. Découplage est le processus de faire quelque chose qui a été étroitement couplé moins, ou pas du tout.

Des systèmes flexibles ont une grande cohésion et lâche accouplement.

Voici mes réflexions sur la cohésion. Imaginez il y a un module. A l'intérieur de ce module, nous avons quelques tâches. Lorsque ces tâches sont étroitement liées les unes aux autres, on dit qu'elle a une forte cohésion. Lorsque ces tâches ne sont pas liés, on dit qu'elle a une faible cohésion. Ma meilleure tentative d'expliquer le découplage est que le découplage est le fait d'enlever le couplage.

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

Cependant, si nous avons beaucoup de dépendances aux modules externes, nous aurions élevé de couplage et une faible cohésion. Recevez votre article?

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

La cohésion est le degré auquel les tâches effectuées par un seul module sont fonctionnellement liés. « IEEE 1983 » la cohésion est la « colle » qui tient 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

Un composant logiciel est dite présenter un degré élevé de cohésion si les éléments de cette unité présentent un degré élevé de parenté fonctionnelle. Cela signifie que chaque élément de l'unité de programme devraient être essentielles pour cette unité pour atteindre son but. Sommerville, 1989

découplage permet la séparation de l'interaction de l'objet à partir des classes et des successions en couches distinctes d'abstraction utilisées pour polymorphique-allié découpler l'encapsulation qui est la pratique consistant à utiliser réutilisable code pour empêcher les modules de code distincts d'interagir les uns avec les autres.

scroll top