In Model-View-Presenter-Muster, wo sollten wir Validierungen von Benutzereingaben schreiben.In MVP wo Validierungen schreiben
Antwort
Domänenspezifische Regeln/Validierungen sollten im Modell enthalten sein. Sie können eine model.validate() haben, um Sie wissen zu lassen, ob die Regeln nicht verletzt werden. Sehen Sie sich die Klassen des Rails-Modells (ActiveRecord) für eine gute Implementierung dieses Konzepts an.
Die Ansicht sollte es dem Benutzer erschweren, ungültige Eingaben einzugeben. Daher sollte die Eingabe einer Zeichenfolge für einen numerischen Wert von Eingabefehlern unterbrochen werden, bevor der Präsentator erreicht wird. Es kann zu einer Duplizierung von Validierungen zwischen Modell und Ansicht kommen. Z.B. AttributeX muss zwischen 1 und 100 liegen. Dies muss im Modell validiert werden. Gleichzeitig möchten Sie vielleicht einen Spinner in der Benutzeroberfläche einfügen, wobei der minValue- und maxValue-Bereich auf 1-100 gesetzt ist.
Moderator ....
Die Ansicht sollte haben „Widgets“, die ungültige Eingabe, wo möglich, zu verhindern.
Normalerweise halte ich meine Sicht völlig sauber, keine Logik da. Aber ich mache nicht viel Web-Entwicklung. In Ajax-ish-Situationen möchten Sie möglicherweise eine clientseitige Validierung, die in der Ansicht angezeigt werden muss.
Business-Logik-Validierung geht in das Modell. Bei der Validierung von Geschäftslogik meine ich Dinge wie die Überprüfung der Mindestbestellmenge usw.
Eingabevalidierung geht in den Presenter. Dies kann zum Beispiel sein, zu prüfen, ob ein Zahlenfeld nicht-numerische Zeichen enthält. Je nach Situation kann dies aber auch bedeuten, zu überprüfen, ob Dateien vorhanden sind.
In komplexeren Fällen, in denen die Validierung an verschiedenen Stellen wiederverwendet werden sollte, wird sie normalerweise in eine Validierungs-Engine unterteilt, die an verschiedenen Stellen aufgerufen werden kann. Dies löst einige Probleme mit der Duplizierung von Validierungscode, der zum Beispiel in der Präsentationsschicht und der Persistenzschicht verwendet wird.
Das ist der Ansatz, den wir gemacht haben - wir haben unsere Validierung in einem gemeinsamen Paket, so dass wir die Eingabe zweimal überprüfen können: einmal im Client, so können wir den Benutzer sofort informieren, wenn ungültige Eingabe, und noch einmal auf dem Server, um sicherzustellen der Benutzer betrügt nicht. –
- 1. MVP Android - Wo den Ansichtszustand speichern?
- 2. in MVC/MVP/MVPC wo setzen Sie Ihre Geschäftslogik?
- 3. Die Umstellung vom Schreiben von Tests für MVP auf MVC
- 4. Wo SignIn logic bei der Verwendung von GWT MVP
- 5. FxCop + MVP: „Eigenschaften sollte nicht schreiben, werden nur“
- 6. Sequel Validierungen in Bedenken
- 7. Anmeldeformular Validierungen in Java
- 8. Mehrere Format Validierungen in Rails
- 9. MVP Flow Frage
- 10. Datum Validierungen
- 11. MVP und Zusammensetzung
- 12. Refactoring Form.ShowDialog() Code zu MVP
- 13. MVP auf Asp.Net WebForms
- 14. factory_girl Assoziation Validierungen
- 15. MVP Checkbox Implementation in C#?
- 16. Android MVP mit RxAndroid + Retrofit
- 17. Wie verwenden Sie Business-Validierungen in DbDataController?
- 18. Android MVP WeakRefrence
- 19. Koordinierende MVP-Triaden
- 20. get Validierungen von Modell
- 21. MVP - Wie viele Moderatoren
- 22. MVC Tutorials für MVP
- 23. Persistent Schicht Validierungen
- 24. Validierungen auf update_attributes überspringen?
- 25. MVP Muster - Design Frage
- 26. Loading Subviews mit MVP
- 27. Validierungen mit ReactiveCocoa anzeigen
- 28. Bedingte Validierungen funktionieren nicht
- 29. Smarter Büroklammer Validierungen
- 30. MVP Vs MVVM - warum
Könnten Sie bitte antworten http://StackOverflow.com/Questions/8851933/Event-Bubbling-and-MVP-ASP-NET? – Lijo