Lose Kopplung vs. enge Kopplung in Java: Unterschied zwischen loser Kopplung und fester Kopplung

Veröffentlicht: 2021-05-02

Inhaltsverzeichnis

Einführung

Java ist eine objektorientierte Programmiersprache , die Klassen und Objekte verwendet. Die Kopplung spielt in Java eine entscheidende Rolle, wenn Sie mit Klassen und Objekten in der Java-Sprache arbeiten. Kopplung bezieht sich auf den Grad des Wissens, das ein Element in Java über das andere Element hat. Es ist der Nutzungsgrad einer Klasse durch eine andere Klasse. Dieser Artikel vermittelt Ihnen ein tiefes Verständnis der Kopplung in Java , ihrer Typen mit Beispielen.

Was ist Kopplung in Java?

Kopplung ist nichts anderes als die Abhängigkeit einer Klasse von der anderen. Wenn ein Objekt in einem Code das andere Objekt im Programm verwendet, wird dies in Java als lose Kopplung bezeichnet . Bei der Kopplung arbeiten zwei Klassen oder Objekte zusammen und arbeiten zusammen, um eine vordefinierte Aufgabe zu erfüllen. Es bedeutet einfach, dass ein Element ein anderes Element benötigt, um eine Funktion zu vervollständigen. Es wird als Kollaboration bezeichnet, wenn eine Klasse die Logik der anderen Klasse aufruft.

Welche Kupplungsarten gibt es?

Es gibt zwei Arten von Kopplung in Java.

Lose Kopplung in Java

Wenn zwei Klassen, Module oder Komponenten geringe Abhängigkeiten voneinander haben, wird dies in Java als lose Kopplung bezeichnet . Lose Kopplung in Java bedeutet, dass die Klassen voneinander unabhängig sind. Das einzige Wissen, das eine Klasse über die andere Klasse hat, ist das, was die andere Klasse durch ihre Schnittstellen in loser Kopplung offengelegt hat. Erfordert eine Situation den Einsatz von Objekten von außen, spricht man von einer Situation der losen Kopplung .

Hier verwendet das übergeordnete Objekt das Objekt selten, und das Objekt kann leicht von externen Quellen geändert werden. Die lose Kopplung in Java hat einen Vorteil gegenüber der engen Kopplung, da sie die Codewartung und den Aufwand reduziert. Eine Änderung in einer Klasse erfordert keine Änderungen in der anderen Klasse, und zwei Klassen können unabhängig voneinander arbeiten.

Beispiel 1: Stellen Sie sich vor, Sie haben in Ihrem Programm zwei Klassen A und B erstellt. Klasse A wird als Volumen bezeichnet und Klasse B bewertet das Volumen eines Zylinders. Wenn Sie das Volume der Klasse A ändern, sind Sie nicht gezwungen, die Klasse B zu ändern. Dies wird in Java als lose Kopplung bezeichnet . Wenn Klasse A Änderungen in Klasse B erfordert, dann haben Sie eine enge Kopplung.

Code

Paket lose Kupplung;

Klasse Lautstärke {

public static void main(String args[]) {

Zylinder b = neuer Zylinder (25, 25, 25);

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

}

}

letzte Klasse Zylinder {

privates int-Volumen;

Zylinder (int Länge, int Breite, int Höhe) {

this.volume = Länge * Breite * Höhe;

}

public int getVolume() {

Rücklaufvolumen;

}

}

Erläuterung: Im obigen Beispiel sind Klasse A und Klasse B lose gekoppelt.

Beispiel 2

java.io.IOException importieren;

Schnittstelle Essen {

public void display();

}

Klasse Italienisch {

Lebensmittel;

öffentlich Italienisch(Essen){

dies.s = s;

}

öffentliche Leeranzeige () {

System.out.println("Italienisch");

s.display();

}

}

Klasse chinesische Arbeitsgeräte Essen {

öffentliches Chinesisch(){}

öffentliche Leeranzeige () {

System.out.println("Chinesisch");

}

}

Klasse mexikanische Geräte Essen {

öffentlich mexikanisch(){}

öffentliche Leeranzeige () {

System.out.println("mexikanisch");

}

}

öffentlicher Klassentest {

public static void main(String args[]) löst IOException {

Essen b = neues Chinesisch ();

Essen c = neu mexikanisch ();

Italienisch a = neu Italienisch (b);

//a.display() gibt Italienisch und Chinesisch aus

ein Bildschirm();

Italienisch a1 = neu Italienisch (c);

//a.display() druckt Italienisch und Mexikanisch

a1.display();

}

}

Ausgabe

Italienisch

Chinesisch

Italienisch

Mexikaner

Erläuterung: Im obigen Beispiel sind alle drei Klassen lose gekoppelt. Es bedeutet einfach, dass Sie die Lebensmittelschnittstelle verwenden können, um Dienste bereitzustellen, indem Sie einen der implementierten Dienste injizieren.

Holen Sie sich Software Engineering-Abschlüsse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Enge Kopplung

Wenn zwei Klassen stark voneinander abhängig sind, spricht man von einer engen Kopplung. Es tritt auf, wenn eine Klasse zu viele Verantwortlichkeiten übernimmt oder wenn eine Änderung in einer Klasse Änderungen in der anderen Klasse erfordert. Bei der engen Kopplung erstellt ein Objekt (Elternobjekt) ein anderes Objekt (Kindobjekt) für seine Verwendung. Wenn das übergeordnete Objekt mehr darüber weiß, wie das untergeordnete Objekt implementiert wurde, können wir sagen, dass das übergeordnete und das untergeordnete Objekt eng gekoppelt sind.

Beispiel: Stellen Sie sich vor, Sie haben in Ihrem Programm zwei Klassen A und B erstellt. Klasse A wird als Volumen bezeichnet und Klasse B bewertet das Volumen eines Zylinders. Wenn Sie Änderungen an der Lautstärke vornehmen, spiegeln sich dieselben Änderungen in Klasse B wider. Daher können wir sagen, dass beide Klassen stark voneinander abhängig und eng gekoppelt sind.

Code

Paket-Festkupplung;

Klasse Lautstärke {

public static void main(String args[]) {

Zylinder b = neuer Zylinder (15, 15, 15);

System.out.println(b.volume);

}}

Klasse Zylinder {

öffentliches Int-Volumen;

Zylinder (int Länge, int Breite, int Höhe) {

this.volume = Länge * Breite * Höhe; }}

Ausgabe

3375

Erläuterung: Im obigen Beispiel sind Klasse A und Klasse B miteinander verbunden und arbeiten als Team zusammen.

Unterschiede zwischen loser Kopplung und fester Kopplung

Die folgende Tabelle listet die Unterschiede zwischen loser Kopplung und fester Kopplung auf.

Lose Kopplung Enge Kopplung
Objekte sind voneinander unabhängig. Ein Objekt ist von dem anderen Objekt abhängig, um eine Aufgabe zu erledigen.
Bessere Testbarkeit Die Testbarkeit ist nicht so groß wie die lose Kopplung in Java .
Asynchrone Kommunikation Synchrone Kommunikation
Weniger Koordination. Das Austauschen von Code zwischen zwei Klassen ist nicht einfach. Bietet eine bessere Koordination. Sie können Code einfach zwischen zwei Objekten austauschen.
Kein Schnittstellenkonzept Folgt den GOF-Prinzipien zur Schnittstelle
Weniger Informationsfluss Mehr Informationsfluss
Sehr wandelbar Es verfügt nicht über die Änderungsfähigkeit.

Fazit

Kurz gesagt, lose Kopplung in Java ist viel besser als enge Kopplung. Es bietet eine bessere Flexibilität und Wiederverwendbarkeit des Codes. Da die beiden Klassen unabhängig voneinander sind, sind Änderungen im Code sehr einfach. Es bietet auch eine bessere Testbarkeit.

Wenn Sie mehr über Softwareentwicklung erfahren möchten, besuchen Sie den Master of Science in Informatik der LJMU, der für Berufstätige konzipiert ist und mehr als 12 Projekte und Aufgaben, 1-zu-1 mit Branchenmentoren und mehr als 500 Lernstunden bietet.

Bereiten Sie sich auf eine Karriere der Zukunft vor

Bewerben Sie sich für den Master of Science in Machine Learning & AI