Definition des Adaptermodus: Verwenden Sie zwei inkompatible Klassen zusammen, die zum Strukturmodus gehört und zwei Identitäten benötigt: Adapter (Adapter) und Adapter (Adapter).
Warum den Adaptermodus verwenden?
Wir stoßen häufig auf zwei nicht verwandte Klassen, die miteinander kombiniert werden müssen. was zu tun?
Erstellen Sie mit Adapter eine Hybridschnittstelle (Hybrid) zwischen diesen beiden Schnittstellen.
So verwenden Sie den Adaptermodus
Um die Adaptermethode zu implementieren, wurde sie in dem Abschnitt "Klassenregeneration" von "Think in Java" erwähnt, es gibt zwei Möglichkeiten: Komposition und Erbschaft.
Angenommen, wir wollen Pfähle fahren, es gibt zwei Arten: quadratische Stapel und kreisförmige Stapel.
Die Codekopie lautet wie folgt:
öffentliche Klasse Squarepeg {
public void Insert (String str) {
System.out.println ("squarepeg insert ():"+str);
}
}
öffentliche Klasse Roundpeg {
public void InsertIntohole (String msg) {
System.out.println ("Roundpeg InsertIntoHole ():"+msg);
}
}
Es gibt jetzt eine Anwendung, die sowohl quadratische Stapel als auch kreisförmige Pfähle erfordert. Anschließend müssen wir diese beiden nicht verwandten Klassen umfassend anwenden.
Die Codekopie lautet wie folgt:
Pegadapter der öffentlichen Klasse erweitert Squarepeg {
privates Roundpegoundpeg;
Public Pegadapter (Roundpeg Peg) (this.roundpeg = peg;)
public void Insert (String str) {Roundpeg.insertIntoHole (str);}
}
Im obigen Code gehört Roundpeg dem Adapter und ist der Adapter. Pegadapter ist ein Adapter, ein Adaptierer (Adapterroundpeg) und Ziel (Target Squarepeg). Tatsächlich ist dies eine umfassende Anwendung von Kompositions- und Vererbungsmethoden.
Pegadapter erbt zuerst Squarepeg und verwendet dann die Kombination von neu, um die Objektmethode zu erzeugen, erzeugt das Roundpeg -Objekt von Roundpeg und überlastet dann die übergeordnete Klasse Insert () -Methode. Von hier aus verstehen Sie auch den Unterschied zwischen der Verwendung neuer Objekte und der Verwendung der Vererbung, um Objekte zu generieren.
Wenn Sie Erfahrung in der Verwendung von Java haben, haben Sie festgestellt, dass dieses Muster häufig verwendet wird.
Weitere Verwendung
Der Pegadapter oben erbt Squarepeg.
Die Codekopie lautet wie folgt:
öffentliche Schnittstelle IRORDEPEG {
public void InsertIntohole (String msg);
}
öffentliche Schnittstelle Isquarepeg {
public void Insert (String str);
}
Im Folgenden finden Sie den neuen Roundpeg und Squarepeg.
Die Codekopie lautet wie folgt:
öffentliche Klasse Squarepeg implementiert Isquarepeg {
public void Insert (String str) {
System.out.println ("squarepeg insert ():"+str);
}
}
Der Roundpeg der öffentlichen Klasse implementiert Iraundpeg {
public void InsertIntohole (String msg) {
System.out.println ("Roundpeg InsertIntoHole ():"+msg);
}
}
Hier ist der neue Pegadapter namens Zwei-Wege-Adapter:
Die Codekopie lautet wie folgt:
Pegadapter im öffentlichen Klassen implementiert Iraundpeg, Isquarepeg {
privates Roundpegoundpeg;
Privat Squarepeg Squarepeg;
// Methode konstruieren
öffentlicher Pegadapter (Roundpeg Peg) {this.roundpeg = peg;}
// Methode konstruieren
Public Pegadapter (Squarepeg Peg) (this.squarepeg = peg;)
public void Insert (String str) {Roundpeg.insertIntoHole (str);}
}
Es gibt auch einen Typ, der als steckbare Adapter bezeichnet wird und einen von mehreren Adaptern dynamisch erhalten kann. Mithilfe der Reflexionstechnologie können Sie öffentliche Methoden in Klassen dynamisch entdecken.