Heim > Web-Frontend > js-Tutorial > Hauptteil

js-Entwurfsmuster: Was ist ein Befehlsmuster? Einführung in den js-Befehlsmodus

不言
Freigeben: 2018-08-17 16:26:40
Original
1459 Leute haben es durchsucht

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.

Was ist der Befehlsmodus?

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.

js-Befehlsmodus

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)
Nach dem Login kopieren

Verwandte Empfehlungen:

js-Designmuster: Was ist das Beobachtermuster (Publish-Subscribe-Muster)? Einführung in das js-Beobachtermuster

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!