Wenn ich ein Programm mit MVC entwerfe, ist der Controller oft die Hälfte der Zeit nutzlos.
Was ich damit meine ist Folgendes: In der Ansicht passiert etwas (z. B. ein Klick auf eine Schaltfläche). Die Ansicht benachrichtigt dann den Controller. Der Controller delegiert dann direkt an das Modell und unternimmt nichts anderes, da er nichts zu tun hat.
Zum Beispiel:
Der Benutzer drückt die Taste 'Farbe Blau'> Ansicht teilt dem Controller mit controller.colorBlue()
> Controller teilt dem Modell mit model.colorBlue()
> Modellfarben etwas Blaues.
In diesem Beispiel scheint der Controller nutzlos zu sein. Es fügt nichts hinzu. Die Ansicht hätte genauso gut direkt mit dem Modell sprechen können.
In der anderen Hälfte der Zeit führt der Controller jedoch eine Art Vermittlung zwischen Ansicht und Modell durch.
Meine Frage lautet: Wie häufig ist dies in MVC-Strukturen? Ist es vernünftig, dass die Hälfte der Zeit, die mein Controller benötigt, unnötig erscheint? Oder ist das ein Problem? Ist das üblich? Wie soll ich das angehen?
Wenn meine Frage nicht klar genug ist, sagen Sie es bitte.
controller.colorBlue()
tatsächlich tatsächlich angerufen wirdmodel.setColor(0, 0, 255);
. Ein Grund für die Trennung zwischen Modell und Ansicht ist, dass häufig mehrere Benutzeroberflächenelemente einen einzelnen Status im Modell darstellen (z. B. wird ein Element im Menü aktiviert, die Symbolleiste gedrückt und der Zeiger ändert sich in eine Füllung Das Symbol all entspricht dem aktuell ausgewählten Werkzeugfeld im Modell. Bei der MVC-Trennung müsste sich das Modell nicht um die Synchronisierung der verschiedenen UI-Elemente kümmern.