Couplage vs cohésion
Le couplage et la cohésion sont deux concepts trouvés dans Java (et toutes les autres langues orientées objet). Mesures de couplage Dans quelle mesure chacun des modules de programme dépend des autres modules de programme. La cohésion mesure à quel point chacune des fonctions est forte dans un module. En fait, tout langage orienté objet (y compris Java) a les deux objectifs principaux de l'augmentation de la cohésion et de la diminution du couplage en même temps, afin de développer des programmes les plus efficaces. Ces deux mesures d'ingénierie logicielle ont été développées par Larry Constantin pour réduire le coût de la modification et de la maintenance des logiciels.
Qu'est-ce que la cohésion?
La cohésion mesure à quel point chacune des fonctions est forte dans un module de programme. Des cours bien structurés conduisent à des programmes hautement cohésifs. Si une certaine classe remplit un ensemble de fonctions hautement liées, cette classe est censée être cohérente. D'un autre côté, si une classe remplit un tas de fonctionnalités totalement non liées, cela signifie que la classe n'est pas du tout cohérente. Il est important de comprendre que le fait de ne pas avoir de cohésion ne signifie pas que l'application globale n'a pas la fonctionnalité requise. C'est juste que sans cohésion, il sera très difficile de gâcher la fonctionnalité car ils seront dispersés à de nombreux mauvais endroits à mesure que la complexité de l'application augmente au fil du temps. Le maintien, la modification et l'extension des comportements dispersés partout dans le code sont très fastidieux, même pour le plus de programmeurs d'expérience.
Qu'est-ce que le couplage?
Mesures de couplage Dans quelle mesure chacun des modules de programme dépend des autres modules de programme. Les interactions entre deux objets se produisent car il y a un couplage. Les programmes à couplage librement sont riches en flexibilité et en extensibilité. Un couplage fort n'est jamais bon car un objet peut dépendre fortement d'un autre objet. Il s'agit d'un cauchemar lorsque le code est modifié, car un couplage élevé signifie que les programmeurs doivent travailler sur plusieurs lieux de code, même pour une seule modification comportementale. Un couplage fort conduit toujours à des programmes avec une faible flexibilité et moins d'évolutivité / extensibilité. Cependant, dans les langages de programmation comme Java, éviter complètement le couplage est impossible. Mais il est recommandé que les programmeurs donnent de leur mieux pour réduire le couplage autant que possible. Il est également possible d'avoir un couplage pour aider les objets à interagir entre eux sans entraver son évolutivité et sa flexibilité.
Quelle est la différence entre le couplage et la cohésion?
Même si le couplage et la cohésion traitent de la qualité d'un module en génie logiciel, ce sont des concepts entièrement différents. La cohésion parle de la quantité de fonctionnalités liées les unes aux autres dans le module, tandis que le couplage traite de la quantité de module qui dépend des autres modules de programme dans l'ensemble de l'application. Afin d'avoir les logiciels de meilleure qualité, la cohésion et le couplage devraient atteindre les deux extrémités opposées de leurs spectres. En d'autres termes, le couplage lâche et la forte cohésion fournissent le meilleur logiciel. Le fait d'avoir des champs privés, des classes non publiques et des méthodes privées fournissent un couplage lâche, tout en rendant tous les membres visibles dans la classe et en ayant un emballage car la visibilité par défaut offre une cohésion élevée.