suchen
HeimWeb-Frontendjs-TutorialZusammenfassung der Anwendung des Adapter-Adaptermusters in der JavaScript-Entwurfsmusterprogrammierung (grafisches Tutorial)

Das Adaptermuster wird verwendet, um das Problem der Schnittstelleninkompatibilität zwischen zwei Software-Entitäten zu lösen. Es wird häufig in JavaScript, insbesondere AJAX, verwendet. Schauen wir uns als Nächstes die Anwendungsanalyse des Adapter-Adaptermusters in der JavaScript-Designmusterprogrammierung an

Definition
Das Adaptermuster (Adapter) dient dazu, die Schnittstelle (Methode oder Attribut) einer Klasse (Objekt) in eine andere Schnittstelle (Methode oder Attribut) umzuwandeln, die der Kunde wünscht Das Adaptermuster sorgt dafür, dass die ursprünglichen Klassen (Objekte), die aufgrund inkompatibler Schnittstellen nicht zusammenarbeiten, einigermaßen funktionieren können. Instant-Wrapper.

Ein Alias ​​für einen Adapter ist Wrapper, ein relativ einfaches Muster. In der Programmentwicklung gibt es viele Szenarien: Wenn wir versuchen, eine Schnittstelle eines Moduls oder Objekts aufzurufen, stellen wir fest, dass das Format dieser Schnittstelle nicht den aktuellen Anforderungen entspricht. Derzeit gibt es zwei Lösungen. Die erste besteht darin, die ursprüngliche Schnittstellenimplementierung zu ändern. Wenn das ursprüngliche Modul jedoch sehr komplex ist oder das Modul, das wir erhalten, ein von jemand anderem geschriebener komprimierter Code ist, ist eine Änderung der ursprünglichen Schnittstelle nicht realistisch. . Die zweite Methode besteht darin, einen Adapter zu erstellen, um die ursprüngliche Schnittstelle in eine andere vom Kunden gewünschte Schnittstelle umzuwandeln. Der Kunde muss sich nur mit dem Adapter befassen.

Warum müssen Sie den Adaptermodus verwenden?
Bei der Entwicklung einer Anwendung müssen Sie häufig einen Teil davon ersetzen, beispielsweise eine Bibliothek, die Sie zum Speichern von Protokollen oder Ähnlichem verwenden. Wenn Sie sie durch eine neue Bibliothek ersetzen, ist es unwahrscheinlich, dass die neue Bibliothek genau dieselbe Schnittstelle hat. Von hier aus haben Sie zwei Möglichkeiten:
(1) Gehen Sie Ihren gesamten Code durch und ändern Sie alles, was auf die alte Bibliothek verweist.
(2) Erstellen Sie einen Adapter, damit die neue Bibliothek dieselbe Schnittstelle wie die alte Bibliothek verwenden kann.
Natürlich ist es in manchen Fällen, wenn Ihre Anwendung klein ist oder nur wenige Verweise auf die alte Bibliothek enthält, sinnvoller, den gesamten Code durchzugehen und ihn an die neue Bibliothek anzupassen, anstatt eine neue A-Ebene hinzuzufügen der Abstraktion, die den Code komplexer macht. In den meisten Fällen ist es jedoch praktischer und zeitsparender, einen Adapter zu erstellen.

JavaScript-Codebeispiel

Wenn etwas passieren kann, wird es passieren. Werfen wir zunächst einen Blick auf diese kleine LoggerFactory, mit der wir die von uns verwendete Protokollierungsschnittstelle einfacher ändern können.

var LoggerFactory = {
  getLogger: function() {
    return window.console;
  },
  ...
};

/* 用法示例 */
var logger = LoggerFactory.getLogger();
logger.log("something to log");

Es gibt uns das Konsolenobjekt (Konsole) zurück, wenn wir getLogger aufrufen. Für diese Übung gehen wir davon aus, dass das Konsolenobjekt nur eine Methode, log, hat und nur einen Parameter vom Typ string akzeptieren kann. Als nächstes haben wir eine andere Protokollschnittstelle, die komplizierter sein wird, weil 1) sie in JavaScript implementiert ist und nicht wie die Konsole nativ für den Browser ist, 2) sie das Protokoll über AJAX an den Server sendet, was auch bedeutet Wir müssen die URL-Daten kodieren (der Code implementiert die URL-Kodierung nicht speziell, da sie nichts mit dem Adaptermuster zu tun hat, über das wir sprechen werden). Natürlich wird es eine andere Schnittstelle als die Konsole verwenden.

var AjaxLogger = {
  sendLog: function() {
    var data = this.urlEncode(arguments);

    jQuery.ajax({
      url: "http://example.com/log",
      data: data
    });
  },

  urlEncode: function(arg) {
    ...
    return encodedData;
  },
  ...
};

Wir verwenden die AJAX-Anfrage von jQuery, hauptsächlich um Zeit zu sparen und Dinge zu ignorieren, die wir mit dem Adaptermuster nicht tun möchten. Was wir jetzt tun müssen, ist einen Adapter zu erstellen und die vorherige LoggerFactory so zu ändern, dass dieser Adapter anstelle des Konsolenobjekts zurückgegeben wird.

var AjaxLoggerAdapter = {
  log: function(arg) {
    AjaxLogger.sendLog(arg);
  }
};

/* 调整 LoggerFactory */

var LoggerFactory = {
  getLogger: function() {
    // 改变返回值
    return AjaxLoggerAdapter;
  },
  ...
};

Wir haben nur eine Zeile am vorhandenen Code geändert und das gesamte Programm kann diese neue Protokollierungsschnittstelle verwenden.

Komplexer Adapter

Die Protokollierungsschnittstelle ist ein sehr einfaches Beispiel. Sie hat nur eine Methode und es ist nicht schwierig, sie direkt der alten Methode zuzuordnen. In den meisten Fällen ist dies nicht der Fall. Möglicherweise besteht das Problem, dass die Parameter dieser Funktionen, die einander zugeordnet sind, völlig unterschiedlich sind. Die alte Schnittstelle verfügt möglicherweise überhaupt nicht über diese Parameter und Sie müssen sie selbst verwalten. In manchen Fällen müssen Sie einige Parameter löschen, weil die neue Schnittstelle sie einfach nicht verwendet. Wenn die Schnittstellenzuordnung zwischen zwei Objekten zu schwierig ist, müssen wir uns andere Möglichkeiten überlegen. Ich möchte jedoch nicht Tausende von Zeilen alten Codes finden und ändern.

Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.

Verwandte Artikel:

Wissen über JavaScript typeof, null und undefiniert

JavaScript Boolean object Verwandte Kenntnisse und Verwendung

JavaScript-Datum (Datum) Verwandte Kenntnisse und Verwendung

Das obige ist der detaillierte Inhalt vonZusammenfassung der Anwendung des Adapter-Adaptermusters in der JavaScript-Entwurfsmusterprogrammierung (grafisches Tutorial). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Die Zukunft von Python und JavaScript: Trends und VorhersagenDie Zukunft von Python und JavaScript: Trends und VorhersagenApr 27, 2025 am 12:21 AM

Zu den zukünftigen Trends von Python und JavaScript gehören: 1. Python wird seine Position in den Bereichen wissenschaftlicher Computer und KI konsolidieren. JavaScript wird die Entwicklung der Web-Technologie fördern. Beide werden die Anwendungsszenarien in ihren jeweiligen Bereichen weiter erweitern und mehr Durchbrüche in der Leistung erzielen.

Python vs. JavaScript: Entwicklungsumgebungen und ToolsPython vs. JavaScript: Entwicklungsumgebungen und ToolsApr 26, 2025 am 12:09 AM

Sowohl Python als auch JavaScripts Entscheidungen in Entwicklungsumgebungen sind wichtig. 1) Die Entwicklungsumgebung von Python umfasst Pycharm, Jupyternotebook und Anaconda, die für Datenwissenschaft und schnelles Prototyping geeignet sind. 2) Die Entwicklungsumgebung von JavaScript umfasst Node.JS, VSCODE und WebPack, die für die Entwicklung von Front-End- und Back-End-Entwicklung geeignet sind. Durch die Auswahl der richtigen Tools nach den Projektbedürfnissen kann die Entwicklung der Entwicklung und die Erfolgsquote der Projekte verbessert werden.

Ist JavaScript in C geschrieben? Prüfung der BeweiseIst JavaScript in C geschrieben? Prüfung der BeweiseApr 25, 2025 am 12:15 AM

Ja, der Motorkern von JavaScript ist in C. 1) Die C -Sprache bietet eine effiziente Leistung und die zugrunde liegende Steuerung, die für die Entwicklung der JavaScript -Engine geeignet ist. 2) Die V8-Engine als Beispiel wird sein Kern in C geschrieben, wobei die Effizienz und objektorientierte Eigenschaften von C kombiniert werden.

JavaScripts Rolle: das Web interaktiv und dynamisch machenJavaScripts Rolle: das Web interaktiv und dynamisch machenApr 24, 2025 am 12:12 AM

JavaScript ist das Herzstück moderner Websites, da es die Interaktivität und Dynamik von Webseiten verbessert. 1) Es ermöglicht die Änderung von Inhalten, ohne die Seite zu aktualisieren, 2) Webseiten durch DOMAPI zu manipulieren, 3) Komplexe interaktive Effekte wie Animation und Drag & Drop, 4) die Leistung und Best Practices optimieren, um die Benutzererfahrung zu verbessern.

C und JavaScript: Die Verbindung erklärteC und JavaScript: Die Verbindung erklärteApr 23, 2025 am 12:07 AM

C und JavaScript erreichen die Interoperabilität durch WebAssembly. 1) C -Code wird in das WebAssembly -Modul zusammengestellt und in die JavaScript -Umgebung eingeführt, um die Rechenleistung zu verbessern. 2) In der Spieleentwicklung kümmert sich C über Physik -Engines und Grafikwiedergabe, und JavaScript ist für die Spiellogik und die Benutzeroberfläche verantwortlich.

Von Websites zu Apps: Die verschiedenen Anwendungen von JavaScriptVon Websites zu Apps: Die verschiedenen Anwendungen von JavaScriptApr 22, 2025 am 12:02 AM

JavaScript wird in Websites, mobilen Anwendungen, Desktop-Anwendungen und serverseitigen Programmierungen häufig verwendet. 1) In der Website -Entwicklung betreibt JavaScript DOM zusammen mit HTML und CSS, um dynamische Effekte zu erzielen und Frameworks wie JQuery und React zu unterstützen. 2) Durch reaktnatives und ionisches JavaScript wird ein plattformübergreifendes mobile Anwendungen entwickelt. 3) Mit dem Elektronenframework können JavaScript Desktop -Anwendungen erstellen. 4) Node.js ermöglicht es JavaScript, auf der Serverseite auszuführen und unterstützt hohe gleichzeitige Anforderungen.

Python gegen JavaScript: Anwendungsfälle und Anwendungen verglichenPython gegen JavaScript: Anwendungsfälle und Anwendungen verglichenApr 21, 2025 am 12:01 AM

Python eignet sich besser für Datenwissenschaft und Automatisierung, während JavaScript besser für die Entwicklung von Front-End- und Vollstapel geeignet ist. 1. Python funktioniert in Datenwissenschaft und maschinellem Lernen gut und unter Verwendung von Bibliotheken wie Numpy und Pandas für die Datenverarbeitung und -modellierung. 2. Python ist prägnant und effizient in der Automatisierung und Skripten. 3. JavaScript ist in der Front-End-Entwicklung unverzichtbar und wird verwendet, um dynamische Webseiten und einseitige Anwendungen zu erstellen. 4. JavaScript spielt eine Rolle bei der Back-End-Entwicklung durch Node.js und unterstützt die Entwicklung der Vollstapel.

Die Rolle von C/C bei JavaScript -Dolmetschern und CompilernDie Rolle von C/C bei JavaScript -Dolmetschern und CompilernApr 20, 2025 am 12:01 AM

C und C spielen eine wichtige Rolle in der JavaScript -Engine, die hauptsächlich zur Implementierung von Dolmetschern und JIT -Compilern verwendet wird. 1) C wird verwendet, um JavaScript -Quellcode zu analysieren und einen abstrakten Syntaxbaum zu generieren. 2) C ist für die Generierung und Ausführung von Bytecode verantwortlich. 3) C implementiert den JIT-Compiler, optimiert und kompiliert Hot-Spot-Code zur Laufzeit und verbessert die Ausführungseffizienz von JavaScript erheblich.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software