Couplage lâche vs couplage serré en Java : Différence entre couplage lâche et couplage serré

Publié: 2021-05-02

Table des matières

introduction

Java est un langage de programmation orienté objet qui utilise des classes et des objets. Le couplage joue un rôle essentiel en Java si vous travaillez avec des classes et des objets en langage Java. Le couplage fait référence au degré de connaissance qu'un élément de Java possède sur l'autre élément. C'est le degré d'utilisation d'une classe par une autre classe. Cet article vous donnera une compréhension approfondie du couplage en Java , de ses types avec des exemples.

Qu'est-ce que le couplage en Java ?

Le couplage n'est rien d'autre que la dépendance d'une classe à l'autre. Si un objet dans un code utilise l'autre objet dans le programme, cela s'appelle un couplage lâche en Java . Dans le couplage, deux classes ou objets collaborent et travaillent ensemble pour accomplir une tâche prédéfinie. Cela signifie simplement qu'un élément nécessite un autre élément pour remplir une fonction. C'est ce qu'on appelle la collaboration lorsqu'une classe appelle la logique de l'autre classe.

Quels sont les types de couplage ?

Le couplage en Java est de deux types.

Couplage lâche en Java

Lorsque deux classes, modules ou composants ont de faibles dépendances l'un sur l'autre, on parle de couplage lâche en Java . Le couplage lâche en Java signifie que les classes sont indépendantes les unes des autres. La seule connaissance qu'une classe possède sur l'autre classe est ce que l'autre classe a exposé à travers ses interfaces en couplage lâche. Si une situation nécessite l'utilisation d'objets de l'extérieur, elle est qualifiée de situation de couplage lâche .

Ici, l'objet parent utilise rarement l'objet et l'objet peut être facilement modifié à partir de sources externes. Le couplage lâche en Java a l'avantage sur le couplage serré car il réduit la maintenance du code et les efforts. Un changement dans une classe ne nécessite pas de changement dans l'autre classe, et deux classes peuvent fonctionner indépendamment.

Exemple 1 : Imaginez que vous avez créé deux classes, A et B, dans votre programme. La classe A est appelée volume et la classe B évalue le volume d'un cylindre. Si vous changez de volume de classe A, vous n'êtes pas obligé de changer de classe B. C'est ce qu'on appelle le couplage lâche en Java . Lorsque la classe A nécessite des changements dans la classe B, alors vous avez un couplage étroit.

Code

couplage lâche du paquet ;

volume de classe {

public static void main(String args[]) {

Cylindre b = nouveau Cylindre(25, 25, 25);

System.out.println(b.getVolume());

}

}

Cylindre de classe finale {

volume int privé ;

Cylindre(int longueur, int largeur, int hauteur) {

this.volume = longueur * largeur * hauteur ;

}

public int getVolume() {

volume de retour ;

}

}

Explication : Dans l'exemple ci-dessus, la classe A et la classe B sont faiblement couplées.

Exemple 2

import java.io.IOException ;

interface Nourriture {

public void display();

}

cours d'italien {

Nourriture;

public italien (nourriture s) {

ceci.s = s;

}

public void display(){

System.out.println("Italien");

s.display();

}

}

classe ustensiles chinois Nourriture {

chinois public(){}

public void display(){

System.out.println("Chinois");

}

}

classe ustensiles mexicains Nourriture {

public mexicain(){}

public void display(){

System.out.println("Mexicain");

}

}

test de classe publique {

public static void main(String args[]) lance IOException {

Nourriture b = nouveau chinois();

Nourriture c = nouveau mexicain();

italien a = nouvel italien (b);

//a.display() affichera l'italien et le chinois

un écran();

italien a1 = nouvel italien(c);

//a.display() affichera l'italien et le mexicain

a1.display();

}

}

Sortir

italien

chinois

italien

mexicain

Explication : Dans l'exemple ci-dessus, les trois classes sont faiblement couplées. Cela signifie simplement que vous pouvez utiliser l'interface alimentaire pour fournir des services en injectant l'un des services implémentés.

Obtenez des diplômes en génie logiciel en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Couplage serré

Lorsque deux classes sont fortement dépendantes l'une de l'autre, on parle de couplage étroit. Cela se produit lorsqu'une classe prend trop de responsabilités ou lorsqu'un changement dans une classe nécessite des changements dans l'autre classe. En couplage étroit, un objet (objet parent) crée un autre objet (objet enfant) pour son utilisation. Si l'objet parent en sait plus sur la façon dont l'objet enfant a été implémenté, nous pouvons dire que l'objet parent et l'objet enfant sont étroitement couplés.

Exemple : Imaginez que vous avez créé deux classes A et B, dans votre programme. La classe A est appelée volume et la classe B évalue le volume d'un cylindre. Si vous apportez des modifications au volume, les mêmes modifications se refléteront dans la classe B. Par conséquent, nous pouvons dire que les deux classes dépendent fortement l'une de l'autre et sont étroitement couplées.

Code

couplage serré du paquet ;

volume de classe {

public static void main(String args[]) {

Cylindre b = nouveau Cylindre(15, 15, 15);

System.out.println(b.volume);

}}

classe Cylindre {

volume int public ;

Cylindre(int longueur, int largeur, int hauteur) {

this.volume = longueur * largeur * hauteur ; }}

Sortir

3375

Explication : Dans l'exemple ci-dessus, la classe A et la classe B sont liées et travaillent en équipe.

Différences entre le couplage lâche et le couplage serré

Le tableau suivant répertorie les différences entre un couplage lâche et un couplage serré.

Couplage lâche Couplage serré
Les objets sont indépendants les uns des autres. Un objet dépend de l'autre objet pour accomplir une tâche.
Meilleure testabilité La testabilité n'est pas aussi grande que le couplage lâche en Java .
Communication asynchrone Communication synchrone
Moins de coordination. Échanger du code entre deux classes n'est pas facile. Fournit une meilleure coordination. Vous pouvez facilement échanger du code entre deux objets.
Pas de notion d'interface Suit les principes GOF pour l'interface
Moins de flux d'informations Plus de flux d'informations
Très variable Il n'a pas la capacité de changement.

Conclusion

En un mot, le couplage lâche en Java est bien meilleur que le couplage serré. Il offre une meilleure flexibilité et réutilisabilité du code. Comme les deux classes sont indépendantes l'une de l'autre, cela facilite grandement les modifications du code. Il offre également une meilleure testabilité.

Si vous souhaitez en savoir plus sur le développement de logiciels, consultez le Master of Science en informatique de LJMU qui est conçu pour les professionnels en activité et propose plus de 12 projets et missions, 1-ON-1 avec des mentors de l'industrie, plus de 500 heures d'apprentissage.

Préparez-vous à une carrière d'avenir

Postuler pour un Master of Science en Machine Learning & AI