Ein laufendes Beispiel oder eine funktionierende Demo des Interface-Musters in JavaScript

8

Ich lese das Buch "pro javascript design patterns" und finde wenig Verständnis für das "Interface" -Muster, das im Buchkapitel 2 angegeben ist, da es kein vollständiges Codebeispiel gibt, das die Verwendung dieses Musters demonstriert.

>

Ich bin auf der Suche nach etwas Hilfe, um dieses Muster zu verstehen, wenn ein Beispiel für einen laufenden Code auf jsfiddle usw. steht.

Dieses Muster wird in den Buchseiten 14 - 22 erklärt, Hauptpunkt, den ich nicht verstehe, ist, wo und wie die "addForm" -Methode aufgerufen wird. ODER Wenn jemand das ErgebnisFormatter-Beispiel mit einigen Testdaten und einem Objekt vervollständigen kann, wird dies sehr hilfreich sein, um das Muster zu verstehen.

Code für das Buch "Pro Javascript Design Patterns" kann von Ссылка heruntergeladen werden und das ist Kapitel 2.

Danke für die Hilfe !!

    
Anmol Saraf 24.10.2012, 00:09
quelle

3 Antworten

8

Ich habe gesehen, dass das Muster auf verschiedene Arten implementiert wurde, aber die Idee ist einfach:

  1. Sie haben eine Klasse - Ihre Schnittstelle -, die einfach die Namen einiger Funktionen angibt. (Möglicherweise möchten Sie eine Klasse namens Interface haben, die Ihre tatsächlichen Schnittstellen instanziieren, nur damit Ihre Schnittstellen vom Typ Interface sind)
  2. Sie haben dann eine andere Klasse, die eine solche Schnittstelle implementiert. Dies bedeutet, dass diese zweite Klasse mindestens alle von der Schnittstelle spezifizierten Funktionen haben muss.
  3. Schließlich haben Sie irgendwo anders eine andere Funktion, die erwartet, ein Objekt zu empfangen, das die Schnittstelle implementiert. In dem von Ihnen erwähnten Beispielcode ist diese Funktion addForm, die ein Objekt erwartet, das die Schnittstellen "Composite" und "FormItem" implementiert.
  4. Diese Funktion durchläuft dann alle Methoden der erwarteten Schnittstelle (n) und prüft, ob das Objekt, an das sie übergeben wurde, auch diese Methoden besitzt. Wenn in dem Objekt, das an die Funktion übergeben wird, keine Methode von einer der Schnittstellen gefunden wird, bestimmt es, dass das Objekt die Schnittstelle nicht implementiert, und löst eine Ausnahme aus.

Einige Leute mögen dieses Muster wegen des damit verbundenen Aufwands als unpraktisch empfinden, aber da Javascript keine native Unterstützung für Schnittstellen bietet, ist dies keine schlechte Lösung. Einige Leute finden auch, dass die Verwendung von Schnittstellen für kleine Projekte in Javascript übertrieben ist.

Beispiel

%Vor%

Verwendung

%Vor%     
rodrigo-silveira 01.11.2012, 14:30
quelle
4

Beende das Buchbeispiel und hier ist die Arbeit jsfiddle , -

%Vor%     
Anmol Saraf 01.11.2012 19:11
quelle
0

ES6 hat der Sprache syntaktischen Zucker hinzugefügt. Unten ist die ES6-Implementierung desselben Beispiels.

%Vor%

Versuchen Sie, mit dem Code herumzuspielen, indem Sie die Methoden in der Klasse Map entfernen. Hoffe, dass es den Leuten, die vom oops-Hintergrund kommen, besser erklärt

    
Minkesh Jain 09.08.2017 22:05
quelle