【Text】
Wir wissen, dass die wichtigste und am schwierigsten UI -Steuerung in Android die ListView List Control ist. Wenn Sie es flexibel verwenden möchten, müssen Sie den Adapteradapter verwenden. Daher denke ich, dass es immer noch notwendig ist, den Adaptermodus in Java zu lernen (unabhängig davon, ob er in Zukunft verwendet werden kann). Schließlich ist die Java -Sprache eine sehr wichtige Grundlage für die Entwicklung von Android.
Um den Adaptermodus vollständig zu verstehen, gibt es beispielsweise viel Wissen zu lernen: Der Adaptermodus hat zwei verschiedene Formen: den Adapter -Modus der Klasse und den Adapter -Objektmodus. Aber als Anfänger werde ich einfach das einleitende Wissen über den Orchestrierungsmodus erlernen und werde es in Zukunft weiter verbessern. Ich hoffe, dass die Kinderschuhe, die auf dem Weg zum Codieren kämpfen, sich nicht beschweren → _ →
1. Adapter Einführung
• Konvertieren Sie eine Schnittstelle einer Klasse in eine andere Schnittstelle, die der Kunde wünscht. Mit dem Adaptermodus können Klassen, die ursprünglich nicht zusammenarbeiten konnten, aufgrund der Inkompatibilität der Schnittstellen zusammenarbeiten.
• Der Adaptermodus wird in modernen Java -Frameworks sehr häufig verwendet. Dieses Muster eignet sich für die folgenden Szenarien: Sie möchten eine vorhandene Klasse verwenden, die Klasse erfüllt jedoch nicht die Schnittstellenanforderungen. Oder Sie müssen eine wiederverwendbare Klasse erstellen, die sich an andere Klassen anpasst, die keine geeignete Schnittstelle bieten.
2. Beispiele für Äpfel und Orangen
Die Idee eines Adapters kann durch das folgende einfache Beispiel veranschaulicht werden. In diesem Beispiel soll ein orange "Anpassungs" in einen Apfel angepasst werden. Wie in der Abbildung unten gezeigt:
Wie Sie in der unteren Hälfte des obigen Bildes sehen können, enthält der Adapter eine Orange -Instanz und erbt die Apple -Klasse. Das orangefarbene Objekt wird in den Adapter platziert, sodass der Orange wie ein Apfel wirkt. Das entsprechende Logikdiagramm lautet wie folgt:
3. Beispiele für Socket -Box -Stecker
In der obigen Abbildung können wir den Stecker in der linken Steckdose erfolgreich über den mittleren Adapter anschließen.
4. Code -Implementierung des Plug -Adapters
/** Adaptermodus (Adapter): Umwandle eine Schnittstelle einer Klasse in eine andere Schnittstelle, die der Kunde will. Mit dem Adaptermodus können Klassen, die ursprünglich nicht zusammenarbeiten konnten, aufgrund der Inkompatibilität der Schnittstellen zusammenarbeiten. */class adapterdemo {public static void main (String [] args) {// Power a beginnt arbeits powera powera = new PoweraMpl (); Start (Powera); Powerb powerb = new PowerBimpl (); Poweraadapter pa = neuer poweraAdapter (powerb); Start (PA); } // Definitionsmethode: Powera arbeitet public static void start (powera powera) {System.out.println (".... ein doppelter Code ......"); powera.insert (); System.out.println ("... ein doppelter Code .../n"); } /** public static void start (powerb powerb) {System.out.println ("... ein doppelter Code ......"); PowerB.Connect (); System.out.println ("... ein doppelter Code ......"); } */} // Definieren Sie die Adapter -Klasse -Klasse PowerAadapter implementiert Powera {private powerb powerb; // Schnittstelle zur Anpassung öffentlicher PowerAadapter (Powerb PowerB) {this.powerB = PowerB; } // Implementieren Sie die Schnittstelle Powera, Sie müssen die Methoden in powera public void Insert () {powerb.connect () implementieren; }}/** power a interface*/interface powera {public void Insert ();} class poweraimpl implementiert powera {public void Insert () {System.out.println ("Power Eine Schnittstelle wird eingefügt, Start Working"); }}/** power b interface*/interface powerb {public void Connect ();} class PowerBimpl implementiert PowerB {public void Connect () {System.out.println ("Power B -Schnittstelle ist verbunden, Start Working"); }} In diesem Beispiel möchten wir, dass Powerb den Code in der Start () -Methode in Powera aufruft. Natürlich möchten wir die Kommentare 23 oder 25 Codezeilen nicht wiederholen. Zu diesem Zeitpunkt können Sie den Adaptermodus verwenden.
Die obige Codeerläuterung:
Zeile 30: Definieren Sie den Adapter, der auch der Beginn des Kerncode ist.
Zeilen 33 und 34: Durch die Konstruktionsmethode pass Powerb ein;
Zeile 37 Code: Da die Schnittstelle Powera implementiert wird, müssen die Methode Insert () in Powera implementiert werden.
Zeile 38 Code: Wir nennen die Methode von PowerBs Connect () in der Powera -Insert () -Methode;
Unmittelbar danach bedeutet die Codezeilen von 10, 11 und 12: Wenn neu ein Powerb in den Adapter PowerAadapter weitergeben, den Adapter starten und dann den Code in Zeilen 16, 24 und 18 ausführen.
Hinweis: Die Reihenfolge von 16, 24 und 18 ist nicht falsch, da wir im Adapter 24 Codezeilen durch Zeile 17 ersetzt haben.
Der Betriebseffekt ist wie folgt:
In ähnlicher Weise kann ich, wenn ich auch Powera als Powerb verwenden möchte, einen anderen Adapter PowerBadapter definieren, um einen bidirektionalen Adapter zu implementieren.
5. Zusammenfassung
Der kommentierte Code in den oben genannten Zeilen 23 und 25 zeigt, dass er viel doppelter Code ist und nicht dem objektorientierten Denken entspricht. Wir stellen uns jetzt ein Beispiel dafür vor, dass unser Projekt online ist und Kunden es verwenden, aber dann wurde eine neue Nachfrage hinzugefügt. Es gibt ein OO-Prinzip für objektorientierte Objekte: Schließen Sie die Änderung (Nach dem Online-Gehen versuchen Sie, den Code nicht zu ändern, andernfalls kann eine Kettenreaktion auftreten, was zu Problemen mit anderen Codes führt, die diese Methode nennen) und für Erweiterungen (neue Methoden, die Sie selbst nicht berufen haben, die wir noch nicht berufen haben, können wir sie natürlich ändern). Zu diesem Zeitpunkt können wir diesen doppelten Code durch Adapter reduzieren.
6. OO -Designprinzipien
• Schnittstellenorientierte Programmierung (abstraktorientierte Programmierung)
• Verpackungsänderungen
• Verwenden Sie mehr Kombinationen, verwenden Sie weniger Vererbung
• Nahe Modifikationen zu offen für Erweiterungen
Persönlich müssen diese Designprinzipien in der Praxis kontinuierlich vertieft werden, sodass ich sie hier nicht zu sehr beschreiben werde ~
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.