Beschreibung des Adaptermodus
Hinweis: Der Adaptermodus ist im Allgemeinen der Fall, in dem die zu verwendende Schnittstelle nicht mit der Anwendung oder dem System übereinstimmt, sondern eingeführt werden muss.
Szene: Es ist, als hätten wir ein Mobiltelefon gekauft, und nach dem Kauf haben wir festgestellt, dass der Ladekabelstecker drei Stecker beträgt, aber zu Hause befinden sich nur zwei Stecker in der Steckdose. Was sollen wir tun? Aus Gründen der Bequemlichkeit und um überall in der Lage zu sein, einen universellen Ladeadapter zu kaufen. damit das Telefon zu Hause aufgeladen werden kann; Andernfalls können Sie es nur platzieren oder an einen Ort mit diesem Stecker zum Laden rennen.
In der tatsächlichen Entwicklungsumgebung, da das alte System oder die von Drittanbietern bereitgestellte Schnittstelle nicht mit der definierten Schnittstelle übereinstimmt, können solche alten oder Drittanbieter-Schnittstellen in einer interface-orientierten Umgebung nicht verwendet werden. Zu diesem Zeitpunkt verwenden wir die Adapterklasse, um die zu angepassten Klassen zu erben, und lassen die Adapterklasse Schnittstellen implementieren, um die Schnittstellen des alten Systems oder der Anwendungen von Drittanbietern einzuführen.
Auf diese Weise können Sie bei der Verwendung der Schnittstellenprogrammierung diese adaptive Übereinstimmungsklasse verwenden, um die Schnittstelle des alten Systems oder der Anwendung von Drittanbietern indirekt aufzurufen.
In JavaScript, um Code zu implementieren, ähnlich wie das Adaptermuster der dynamischen objektorientierten Sprache, können Sie ererbte Prototyp-Instanzen zur Implementierung verwenden. Da es auf Schnittstellenbeschränkungen basiert, JavaScript jedoch keine Schnittstellennummer hat, entfernen wir die Schnittstellenschicht und implementieren direkt das Ziel der Schnittstellen -Implementierungsklasse, um ähnlichen Quellcode zu simulieren.
Beispiel für Quellcode
1. Klassen und Schnittstellenmethoden, die angepasst werden sollen:
Die Codekopie lautet wie folgt:
function apapee () {
this.name = 'apapeee';
}
Apapee.prototype.getname = function () {
kehre diesen namennamen zurück;
}
2. Normale Implementierungsklasse [Da in JavaScript keine Schnittstelle vorhanden ist, wird die Implementierungsklasse direkt bereitgestellt]
Die Codekopie lautet wie folgt:
Funktion target () {
this.name = 'target';
}
Target.Prototype.queryname = function () {
kehre diesen namennamen zurück;
}
3. Anpassungsklasse:
Die Codekopie lautet wie folgt:
Funktion adapte () {
this.name = '';
}
Adapte.prototype = new apapee ();
Adapte.prototype.queryname = function () {
this.getName ();
}
4.. Wie man verwendet:
Die Codekopie lautet wie folgt:
var local = new target ();
Local.Queryname (); // die normale Implementierungsklasse aufrufen
var adapte = new adapte ();
adapte.queryname (); // Aufrufen des alten Systems oder der Anwendungsschnittstelle von Drittanbietern;
Andere Anweisungen
Im vierten Schritt oben ähneln VAR LOCAL und VAR ADAPTE den objektorientierten Sprachen wie Java und C#, wie z. B.:
Die Codekopie lautet wie folgt:
Schnittstellenziel {
public String queryname ();
}
// Schnittstellenreferenzzeiger
Ziel Local = New Realtarget (); // dh die obige Zielimplementierungsklasse von JavaScript
Local.Queryname ();
//Adapter
Ziel adapte = new adapte ();
adapte.queryname ();
Es ist ersichtlich, dass die Adapterklasse die Zwischenschicht ist, die die Schnittstelle mit der Schnittstelle der Zielklasse verbindet. Es wird verwendet, um das Problem zu lösen, das das erforderliche Ziel bereits existiert, aber wir können es nicht direkt verwenden und können es nicht in Verbindung mit unserer Codedefinition verwenden, sodass wir den Adaptermodus verwenden müssen. Der Adaptermodus wird auch als Konvertierungsmodus und Verpackungsmodus bezeichnet.