Dieser Artikel enthält Inhalte zu js-Entwurfsmustern: Was ist das Befehlsmuster? Die Einführung des js-Befehlsmodus hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen.
Definition: Verkapselt eine Anfrage in ein Objekt, sodass Sie den Client mit verschiedenen Anfragen parametrisieren können.
Hauptlösung: In Softwaresystemen haben Verhaltensanforderer und Verhaltensumsetzer normalerweise eine enge Beziehung, aber in einigen Fällen, z Das gekoppelte Design, das Änderungen nicht widerstehen kann, ist nicht geeignet, wenn Wiederholungen, Transaktionen usw. verarbeitet werden.
Wann zu verwenden ist: In manchen Situationen, wie z. B. „Aufzeichnen, Rückgängigmachen/Wiederherstellen, Transaktion“ usw., ist diese Art der engen Kopplung, die Änderungen nicht widerstehen kann, unangemessen. Wie kann in diesem Fall der „Verhaltensanforderer“ vom „Verhaltensumsetzer“ entkoppelt werden? Durch die Abstraktion einer Reihe von Verhaltensweisen in Objekte kann eine lose Kopplung zwischen ihnen erreicht werden.
So lösen Sie: Rufen Sie den Empfänger über den Anrufer an, um den Befehl auszuführen. Die Reihenfolge lautet: Anrufer → Empfänger → Befehl.
Schlüsselcode: Drei Rollen definieren: 1. echtes Befehlsausführungsobjekt empfangen 2. Befehl 3. Aufrufer verwendet den Eingang des Befehlsobjekts
js-Befehl Vorteile des Modells: 1. Reduziert die Systemkopplung. 2. Neue Befehle können einfach zum System hinzugefügt werden.
Nachteile des js-Befehlsmodus: Die Verwendung des Befehlsmodus kann für einige Systeme zu zu vielen spezifischen Befehlen führen.
Nutzungsszenarien für den js-Befehlsmodus: Der Befehlsmodus kann überall dort verwendet werden, wo er als Befehl betrachtet wird, zum Beispiel: 1. Jede Schaltfläche in der GUI ist ein Befehl. 2. CMD simulieren.
Hinweis: Das System muss den Rückgängig-Vorgang (Undo) und den Wiederherstellungsvorgang (Redo) des Befehls unterstützen. Sie können auch die Verwendung des Befehlsmodus in Betracht ziehen Modus.
Der Befehlsmodus ist auch in JavaScript relativ einfach. Der folgende Code trennt 按钮
und 命令
, sodass der Befehlsmodus in komplexen Projekten verwendet werden kann Code und Funktionscode werden verschiedenen Personen zum Schreiben übergeben.
const setCommand = function(button, command) { button.onClick = function() { command.excute() } } // -------------------- 上面的界面逻辑由A完成,下面的由B完成 const menu = { updateMenu: function() { console.log('更新菜单') }, } const UpdateCommand = function(receive) { return { excute: receive.updateMenu, } } const updateCommand = UpdateCommand(menu) // 创建命令 const button1 = document.getElementById('button1') setCommand(button1, updateCommand)
Verwandte Empfehlungen:
js-Entwurfsmuster: Was ist das Iteratormuster? Einführung in das js-Iteratormuster
Das obige ist der detaillierte Inhalt vonjs-Entwurfsmuster: Was ist ein Befehlsmuster? Einführung in den js-Befehlsmodus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!