Frage

Alles ist in der Frage, warum Menüs häufig mit dem Befehlsdesign -Muster und nicht mit dem Beobachtermuster implementiert werden?

War es hilfreich?

Lösung

Es gibt zwei Aspekte, die "Versand", eine Option wird aus einem Menü ausgewählt oder eine Schaltfläche klickt und ein Code wird ausgeführt. Dann gibt es den tatsächlichen Code, der ausgeführt wird.

Ich weiß nicht, auf welches UI -Framework Sie sich beziehen, aber ich würde erwarten, dass sowohl Beobachter als auch Befehlsmuster in beiden Fällen verwendet werden. Ich frage mich, ob das Gerät ist, dass der Menüfall und der Button -Fall gerade von Ihrem Framework auf eine Weise implementiert werden, die unterschiedliche Aspekte sichtbar macht.

Für Menüs geben Sie unterschiedliche Befehlsobjekte an. Sie sehen nie die interne Versand, die dazu führt, dass Ihr Befehl aufgerufen wird. Ich vermute, dass ein Ereignishandling stattfinden muss, sodass das Beobachtermuster möglicherweise verwendet wird. Sie sehen es nur nicht.

Im Schaltflächenfall kann der aufgerufene Code als Befehlsobjekt betrachtet werden, aber wir verdrahten ihn explizit mit einem Ereignis, sodass wir zunächst das Beobachtermuster sehen.

Andere Tipps

Ich kann einen Anwendungsfall für die Verwendung von Observer -Muster mit Menüelement oder Taste sehen. Angenommen, es gibt Horoskoprechner. Der Benutzer verfügt über eine Taste, um die Horoskoperzeugung zu starten. Der Benutzer klickt auf die Schaltfläche und den Befehl, der zur Berechnung an Server ausgegeben wird. Später kann die gleiche Schaltfläche den Serverstatus beobachten oder umgekehrt für Statusaktualisierungen oder zum Anzeigen von Drucken und dem Befehl Feuerdruck über die Schaltfläche. Der Beobachter: Ereignisse müssen versandt werden. Befehl: Eine Aktion ausgeführt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top