


Zusammenfassung 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!

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.

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.

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.

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 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.

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 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.

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.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

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
Visuelle Webentwicklungstools

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

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
