Überblick
Wenn Sie eine Schnittstelle in eine andere Schnittstelle konvertieren. Die Benutzer wünschen sich und ermöglicht den Adaptermodus Klassen, die aufgrund der Inkompatibilität der Schnittstellen nicht zusammenarbeiten konnten.
Zwei Implementierungsmethoden
1. Klassenadaptermodus:
2. Objektadaptermodus:
Das UML -Diagramm des Adaptermodus der Klasse lautet wie folgt:
Das Adaptermuster der Klasse wandelt die API der angepassten Klasse in die API der Zielklasse um.
Die im Bild oben entworfenen Zeichen sind:
Ziel: Dies ist die Schnittstelle, nach der Sie suchen.
Quellrolle (Adapee): Die Schnittstelle, die jetzt zur Anpassung benötigt wird.
Adapterrolle (Adapter): Es ist der Kern dieses Modus, und der Adapter wandelt die Quellschnittstelle in die Zielschnittstelle um.
Codebeispiel:
Schnittstellenziel {void method1 (); void method2 (); // Ich hoffe, diese Methode zu erhalten} // Die Quellklasse hat nicht die Methode in Methode2. class apapee {public void method1 () {System.out.println ("method1"); }} Klasse -Adapter erweitert Adaptee implementiert Ziel {@Override public void method2 () {System.out.println ("Dies ist Zielmethode"); }} public class halten {public static void main (string arg []) {target target = new adapter (); Target.Method2 (); }} Das UML -Diagramm des Adaptermodus des Objekts lautet wie folgt:
Die Kernidee entspricht dem Adaptermodus der Klasse. Es ändert nur die Adapterklasse, erbt nicht die Abpapierklasse, sondern enthält einen Bezug zur Adaptinenklasse. Der Code ist wie folgt:
Schnittstellenziel {void method1 (); void method2 ();} caper apapee {public void method1 () {System.out.println ("method1"); }} Klasse -Adapter implementiert Target {private apapee apapeee; public adapter (apaperee apapee) {this.adapitee = apapere; } @Override public void method2 () {System.out.println ("Dies ist Zielmethode"); } @Override public void method1 () {// Todo automatisch generierte Methode Stub apapeee.method1 (); }} public class halten {public static void main (string arg []) {target target = new adapter (new Adaptee ()); Target.Method2 (); }} Vor- und Nachteile des Adaptermodus:
Bessere Wiederverwendbarkeit und bessere Skalierbarkeit. Das System muss vorhandene Klassen verwenden, und solche Schnittstellen entsprechen den Anforderungen des Systems nicht, sodass diese Funktionen besser im Adaptermodus wiederverwendet werden können. Bei der Implementierung der Adapterfunktion können Sie die von Ihnen entwickelten Funktionen aufrufen, um die Funktionen des Systems auf natürliche Weise zu erweitern.
Nachteile: Zu viel Einsatz von Adaptern macht das System insgesamt sehr unordentlich und schwer zu erfassen.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.