Ich habe Anwendung läuft unter Windows mit MFC geschrieben. Der Status Aktivieren/Deaktivieren der Menüelemente hängt von vielen Bedingungen ab. Zum Beispiel muss ich den Menüeintrag aktivieren, wenn die Bedingung A erfüllt ist ODER wenn die Bedingung B erfüllt ist, aber sollte deaktiviert sein, wenn sowohl A als auch B gleichzeitig TRUE sind. Wie modellieren wir das im Code? Ich denke, ich sollte eine Art von Zustandsmaschine verwenden, aber meine Zustandsmaschine scheint zu viele Zustände zu enthalten. Wie ist der allgemeine Umgang mit solchen Problemen? Bitte beachten Sie, dass das Obige nur ein Beispiel war, es wird viele weitere Bedingungen geben. Auch die Option, das Menü immer aktiviert zu lassen und eine Fehlermeldung anzuzeigen, wenn der Benutzer es drückt, existiert nicht, da ich das Menü deaktivieren muss.Behandlung des UI-Status
Nur um zu klären, ich suche nicht, wie die Menüelemente in MFC zu deaktivieren, was ich suche, ist die beste Möglichkeit zu entscheiden, ob ein Menüelement aktiviert/deaktiviert werden soll, wenn viele voneinander abhängige Staaten sind beteiligt sein.
Nachteil wäre jedoch das Risiko einer großen Business-Logik-Methode :( – cwap
Ich weiß, ich dachte auch, aber da es auf der UI-Seite ist, ist es nicht wirklich Business-Logik. Wenn es Business-Logik Entscheidungen in dort, dann sollten Anrufe zu anderen Klassen gemacht werden (dh "isOptionValid()" in irgendeiner Geschäftslogikklasse anrufen) –
Punkt genommen - nicht wirklich Geschäftslogik, eher wie "ui Logik". – cwap