Sollte der Controller direkte Zuweisungen zu den Model-Objekten vornehmen oder dem Modell mitteilen, was zu tun ist?Was sind bei MVC die Einschränkungen für den Controller?
Antwort
Der Controller verfügt über zwei traditionellen Rollen:
das Eingabeereignis von der UI (eingetragene Handler oder Rückruf) Handhabung
das Modell einer Aktion benachrichtigt - was zur Folge haben kann oder nicht
es führt keine Datenvalidierung in einer Änderung auf dem Zustand des Modells ist, dass auf dem Modell, noch hat es jeder sagen, wie Informationen präsentiert werden.
Die Model Services müssen nicht die Existenz des Controllers kennen, daher kann der Controller das Zeug machen, was immer die View benötigt, indem er die Model Services nutzt.
Es hängt weitgehend vom Umfang Ihrer Anwendung ab. Wenn es relativ schnell und schmutzig ist, dann hat es keinen Sinn, zu übersteuern, und natürlich können Ihre Controller mit Ihren Modellobjekten sprechen. Auf der anderen Seite, wenn es aus irgendeinem Grund "Enterprise" sein muss, ist ein gutes Muster in Verbindung mit MVC der sogenannte "Business Delegate". Hier können Sie grobkörnige Methoden aus einer oder mehreren Methoden für ein oder mehrere Modellobjekte zusammenstellen; zum Beispiel ein Objekt löschen und dann eine aktualisierte Liste ohne dieses Objekt zurückgeben. Diese Schicht bietet zwei Vorteile. Zum einen entkoppelt es die Controller von jedem ORM-System, das für Modellobjekte verwendet wird. Außerdem ist es die Schicht, die schließlich konstruktiv mit eventuell aufgetretenen Ausnahmen umgehen muss, anstatt sie erneut zu werfen.
Ich glaube nicht, dass ein Controller mit Modellobjekten zu tun haben sollte.
Ich neige dazu zu denken, dass Controller wirklich Teil der UI-Tier ist. Ich bevorzuge es, eine Serviceschicht zwischen dem Controller und dem Rest der App einzufügen. Die Webschicht akzeptiert HTTP-Anforderungen, entfernt Parameter von Anforderungsobjekten in Objekte, die von der Serviceschnittstelle verarbeitet werden können, und leitet die Antwort zum Zurücksenden um. Die gesamte Arbeit mit Transaktionen, Arbeitseinheiten und dem Umgang mit Modell- und Persistenzobjekten wird vom Dienst ausgeführt.
Dieser Ansatz ist serviceorientierter. Es trennt den Dienst von der Benutzerschnittstelle und lässt die Möglichkeit offen, dass mehrere Clients denselben Dienst wiederverwenden können. Es macht die Schicht, die Anfragen an den Dienst "marschiert", "dünn", so dass es einfach ist, SOAP-Dienste für REST oder EJB oder CORBA oder was immer die nächste neue Sache sein wird, auszuschalten.
ok, wenn Sie die IP der Anfrage ziehen möchten, würden Sie es in der Service-Schicht oder in der Steuerung tun? – zsharp
das gleiche für die Benutzeridentifikation? – zsharp
Controller für die IP-Adresse. Was die Sicherheit angeht, so ist es ein Querschnittsthema, also gehört es in einen Aspekt. – duffymo
- 1. Was sind die Einschränkungen für Methodennamen in Ruby?
- 2. Was sind die Einschränkungen für Lesezeichennamen in Microsoft Word?
- 3. Sind eindeutige Einschränkungen für die DB notwendig?
- 4. Wo die Auto-Layout-Einschränkungen bei Größenänderungen zu aktualisieren sind?
- 5. Was sind die Anwendungsfälle für jQuery-Vorlagen in ASP.NET MVC?
- 6. Was sind NSubstitute Einschränkungen, speziell vs MOQ?
- 7. Was sind gültige Rückgabetypen einer Spring MVC Controller-Methode?
- 8. Was sind Wege für die Pass-Parameter vom Controller nach Umleitung im Frühjahr mvc?
- 9. Was sind Validierungsoptionen für ASP.NET MVC
- 10. MVC Interdependent Controller: Wer darf was speichern?
- 11. Einschränkungen sind nicht perfekt für adaptives Layout
- 12. Einschränkungen bei impliziter Typisierung
- 13. MVC, Aktion für Controller
- 14. Warum sind die Controller auf ASP.NET MVC namensbasiert?
- 15. Controller für Teilansichten ASP.NET MVC
- 16. Was sind die Grenzen für IMG_FILTER_CONTRAST imagefilter
- 17. Was sind die theoretischen Leistungsgrenzen für Webserver?
- 18. ASP.Net MVC-Controller für _Layout
- 19. Was sind die C++ Befehle für den Fall Lautsprecher?
- 20. Was sind die richtigen Apis für den Zauberspruch?
- 21. Was sind die Wendepunkte für den Team-Prozess-Overhead?
- 22. Was sind die standardmäßigen CKEditor ACF-Regeln für den Inhaltsinhalt?
- 23. MVC ignorieren Anfrage für Controller
- 24. Sind mit NSProgress die Completion-Handler für die Benutzeroberfläche oder den Download-Controller vorgesehen?
- 25. Was sind graue Einschränkungen in der Xcode-Ansichtshierarchie-Debugansicht?
- 26. Welche HTTP-Statuscodes für die MVC-Fehlerbehandlung enthalten sind
- 27. Aktionen sind zustandslos, aber Controller sind zustandslos?
- 28. Was sind die (nicht angezeigten) Delphi XE2 Starter Edition-Einschränkungen (falls vorhanden)?
- 29. Was sind die Voraussetzungen für die Heimautomatisierung?
- 30. Was ist MVC (Model View Controller)?
Allgemeiner koordiniert der Controller die Ansicht und das Modell. Wenn es Änderungen am Modell aufruft, würde dies indirekt geschehen. Zum Beispiel über Fassadenmethoden. Die Absicht ist, die Geschäftslogik von der Benutzerschnittstelle zu isolieren. –
In diesem Sinne wird die Idee der Modellbindung an Webuser-Eingabe in der Controller-Methode nicht empfohlen? – zsharp