Zusammenfassung der Javascript-Entwurfsmuster

1. Implementieren Sie den Singleton-Modus.
Lassen Sie Singleton = Funktion (Name) {
this.name = name;
this.instance = null;
}

Singleton.prototype.getName = function () {
console.log (this.name)
}

Singleton.getInstance = Funktion (Name) {
if (! This.instance) {
this.instance = neuer Singleton (Name)
}
return this.instance;
}}

let a = Singeton.getInstance ('Hallo Welt')

Zweitens ist der Strategiemodus
ist JavaScrip Funktion auch ein Objekt, so dass Sie Funktionen mit Objekten wie definieren können
let Strategien = {
"Typ1": (Gehalt) => {
return Gehalt 1
},
"Typ2": (Gehalt) => {
return Gehalt
2
},
"Typ3": (Gehalt) => {
Gehalt zurückgeben * 3
}
}

lassen calcular = function (Ebene, Gehalt) {
Return - Strategien Ebene
}

Drei, Agenturmodell

Um das ursprüngliche Objekt nicht zu bearbeiten, beziehen Sie sich für den Betrieb auf ein anderes Objekt


letruit = Funktion (Name) { this.name = Name;
}}

ruit.prototype.getName = function () {
return this.name;
}}

Leute, die Äpfel essen wollen = {
gouBuy: (name) => {
console.log ('Kauf ein paar Äpfel für mich' + Name)
}
}

Lassen Sie den Einkauf = {
buyCosmetic: Funktion (Obst) {
Willst du Apfel Menschen essen.gouBuy (Frucht.getName ())
}
}

purchase.buyCosmetic (neue Frucht ('Apfel'))

Viertens besteht der iterative Modus
darin, die funktionalen Anforderungen zu erfüllen, die durch die Schleife
erfüllt werden. Ar getActiveUploadObj = function () {
try {
neues ActiveXObject zurückgeben ("TXFTNActiveX.FTNUpload"); // IE-Upload-Steuerung
} catch (e) {
return false;
}
};
var getFlashUploadObj = function () {
if (supportFlash ()) {// supportFlash-Funktion wird nicht bereitgestellt
var str = '<object type = "application / x-schockwave-flash"> </ object>';
return $ (str). appendTo ($ ('body'));
}
return false;
};
var getFormUpladObj = function () {
var str = '<input name = "file" type = "file" class = "ui-file" />'; // Formular hochladen
return $ (str) .appendTo ($ ('body'));
};

Viertens das Publish-Subscribe-Modell Das
Publish-Subscribe-Modell wird auch als Beobachtermodell bezeichnet. Es definiert eine Eins-zu-Viele-Abhängigkeitsbeziehung zwischen Objekten. Wenn sich der Status eines Objekts ändert, werden alle davon abhängigen Objekte benachrichtigt. In der JavaScript-Entwicklung verwenden wir im Allgemeinen das Ereignismodell, um das traditionelle Publish-Subscribe-Modell zu ersetzen.
var event = {
clientList: [],
listen: function (key, fn) {
if (! this.clientList [key]) {
this.clientList [key] = [];
}
this.clientList [key] .push (fn ); // Die abonnierte Nachricht wird zur Cache-Liste hinzugefügt
},
trigger: function () {
var key = Array.prototype.shift.call (Argumente), // (1);
fns = this.clientList [key];
if ( ! fns || fns.length === 0) {// Wenn die entsprechende Nachricht nicht gebunden ist,
geben Sie false zurück;
}
für (var i = 0, fn; fn = fns [i ++];) {
fn.apply (this, Argumente); // (2) // Argumente sind die Parameter, die gebracht werden, wenn der Trigger
}
}
} ist;
Definieren Sie eine andere installEvent-Funktion, mit der Publish-Subscribe-Funktionen für alle Objekte dynamisch installiert werden können:
var installEvent = function (obj) {
for (var i im Ereignis) {
obj [i] = event [i];
}
};

5.
Befehlsmodus Der Befehlsmodus ist einer der einfachsten und elegantesten Modi. Der Befehl im Befehlsmodus bezieht sich auf
eine Anweisung zum Ausführen bestimmter Dinge.
Der Befehlsmodus ist das häufigste Szenario: Manchmal muss eine Anfrage an bestimmte Objekte gesendet werden, aber er weiß nicht,
wer die Who is Who ist, und weiß nicht, welche Operation angefordert wurde. Ja. Zu diesem Zeitpunkt wird auf eine lose gekoppelte Weise, die zum Entwerfen von Programmen wünschenswert ist, eine solche Anfrage an den
Sender und den Anforderungsempfänger gesendet , um die Kopplung untereinander zu beseitigen. Z.B

var bindClick = function (button, func) {
button.onclick = func;
};
var MenuBar = {refresh
: function () {
console.log ('Menüoberfläche aktualisieren');
}
};
var SubMenu = {
add: function ( ) {
console.log ('Untermenü hinzufügen');
},
del: function () {
console.log ('Untermenü löschen');
}
};
bindClick (button1, MenuBar.refresh);
bindClick (button2, SubMenu. add);
bindClick (button3, SubMenu.del); Der
Befehlsmodus ist ein unsichtbarer Modus in der JavaScript-Sprache.

6. Kombinationsmodus Der
Kombinationsmodus verwendet kleine Unterobjekte, um größere Objekte zu konstruieren, und diese kleinen Unterobjekte können selbst aus
kleineren "Enkelkindern" bestehen. Baumartige Struktur

Zweck: Repräsentiert einen Teil der Gesamthierarchie des Objekts. Der kombinierte Modus kann leicht den gesamten Teil des Objekts konstruieren, der durch eine Baumstruktur dargestellt
wird. Besonders wenn wir nicht sicher sind, wie viele Ebenen dieses Baumes während der Entwicklung existieren. In den meisten Baumstrukturen können
nach Abschluss des Finales nur die obersten Objektanforderungen über den Baum den Betrieb des gesamten Baums vereinheitlichen. Im Kombinationsmodus,
in dem Sie Knoten des Baums hinzufügen und löschen, ist dies sehr praktisch und entspricht dem Open Closed-Prinzip.
Der Client möchte alle Objekte im Baum einheitlich behandeln. Im zusammengesetzten Modus können Kunden den Unterschied zwischen zusammengesetzten Objekten und Blattobjekten ignorieren.
Wenn sie diesem Baum gegenüberstehen , müssen sie sich nicht darum kümmern, ob das aktuell verarbeitete Objekt ein zusammengesetztes Objekt oder ein Blattobjekt ist, sodass sie
keine Reihe von if- und else-Anweisungen schreiben müssen, um zwischen ihnen zu unterscheiden. Beschäftige dich mit ihnen. Das zusammengesetzte Objekt und das Blattobjekt werden ihre eigenen richtigen Dinge tun,
was die wichtigste Fähigkeit des zusammengesetzten Modells ist.

Ich denke du magst

Origin blog.51cto.com/14582569/2594371
Empfohlen
Rangfolge