73 votes

Couplage et cohésion

J'essaie de résumer les concepts de couplage et de cohésion à une définition concise. Est-ce que quelqu'un peut me donner une explication courte et compréhensible (plus courte que les définitions sur Wikipedia ici et ici )? Comment interagissent-ils?

Merci.

Quelqu'un a un bon exemple court?

222voto

Shog9 Points 82052

Couplage

  • En vrac: Vous et le gars du dépanneur. Vous communiquez par le biais d'un protocole bien défini pour atteindre vos objectifs respectifs - vous verser de l'argent, il vous permet de marcher avec le sac de Cheetos. L'un de vous peut être remplacé sans perturber le système.

  • Serré: Vous et votre femme.

La cohésion

  • Faible: Le dépanneur. Vous y allez pour tout, de la de gaz à lait à un guichet automatique bancaire. Les produits et services ont peu de choses en commun, et de la commodité d'avoir tous dans un endroit peut ne pas être suffisant pour compenser l'augmentation des coûts et de la diminution de la qualité.

  • Haut: Le fromage store. Ils vendent du fromage. Rien d'autre. Ne pouvez pas beat'em quand il s'agit de fromage.

68voto

Thomas Owens Points 45042

Attelage - Une mesure de la façon dont beaucoup d'un module (package, classe, méthode) s'appuie sur d'autres modules. Il est souhaitable de réduire le couplage, ou de réduire le montant qu'un module s'appuie sur les autres modules du système.

Cohésion - Une mesure de la façon dont étroitement liées, les membres de la (des classes, des méthodes, de la fonctionnalité à l'intérieur d'une méthode) d'un module à l'autre, les membres d'un même module. Il est souhaitable d'augmenter la cohésion, qui indique que le module a une tâche très spécifique et ne s'occupe que de cette tâche.

26voto

Mansoor Mehmood Points 89

Le couplage signifie la dépendance aux autres. La cohésion signifie la complétude avec soi-même.

24voto

McKenzieG1 Points 5294

L'un des meilleurs discussions globales de conception de logiciels, les concepts liés à OO (dont ceux-ci) est Bertrand Meyer Orientée Objet de la Construction de Logiciel.

Concernant le "couplage", il donne à son Faible Couplage / Petites Interfaces règle comme suit:

Si deux modules communiquent, ils devraient échanger des informations aussi peu que possible.

Meyer matières relatives à la cohésion n'est pas réduit à une simple déclaration lapidaire, mais je pense que cette phrase de Steve McConnell Code Complet , il résume assez bien:

La cohésion se réfère à la façon dont près de toutes les routines dans une classe ou tout le code dans une routine de soutien à un objectif central

2voto

Eduardo Diaz Points 96

"Le couplage est une mesure des interdépendances entre les modules, ce qui devrait être minimisé" "" la cohésion, une qualité à maximiser, met l'accent sur les relations entre les activités réalisées par chaque module. "

cité de cet article: http://steve.vinoski.net/pdf/IEEE-Old_Measures_for_New_Services.pdf

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X