Looking for ios Keywords? Try Ask4Keywords

iOSMVP-Architektur


Einführung

MVP ist ein Architekturmuster, eine Ableitung des Modell-Ansicht-Controllers. Es wird durch drei verschiedene Komponenten dargestellt: Modell, Ansicht und Präsentator. Es wurde entwickelt, um automatisierte Unit-Tests zu ermöglichen und die Trennung von Anliegen in der Präsentationslogik zu verbessern.

In Beispielen finden Sie ein einfaches Projekt, das mit dem MVP-Muster erstellt wurde.

Bemerkungen

Komponenten:

Geben Sie hier die Bildbeschreibung ein

  • Model ist eine Schnittstelle, die für die Domänendaten verantwortlich ist (die in der GUI angezeigt oder anderweitig bearbeitet werden sollen).
  • Ansicht ist für die Präsentationsschicht (GUI) verantwortlich
  • Presenter ist der "Mittelmensch" zwischen Model und View. Es reagiert auf die Aktionen des Benutzers, die in der Ansicht ausgeführt werden, ruft Daten aus dem Modell ab und formatiert sie für die Anzeige in der Ansicht

Pflichten der Komponente:

Modell Aussicht Moderator
Kommuniziert mit der DB-Schicht Rendert Daten Führt Abfragen an das Modell aus
Geeignete Ereignisse auslösen Empfängt Ereignisse Formatiert Daten von Model
Sehr grundlegende Validierungslogik Sendet formatierte Daten an die Ansicht
Komplexe Validierungslogik

Unterschiede zwischen MVC und MVP :

  • View in MVC ist eng mit dem Controller gekoppelt. Der View-Teil des MVP besteht aus UIViews und UIViewController
  • MVP View ist so dumm wie möglich und enthält fast keine Logik (wie in MVVM). MVC View verfügt über einige Geschäftslogik und kann das Modell abfragen
  • MVP View behandelt Benutzergesten und delegiert die Interaktion an den Presenter. In MVC verarbeitet der Controller Gesten und Befehle Modell
  • MVP-Pattern unterstützt Unit-Tests stark, MVC hat nur eingeschränkte Unterstützung
  • MVC Controller hat viele UIKit-Abhängigkeiten, MVP Presenter hat keine

Pros:

  • MVP macht UIViewController zu einem Teil der View-Komponente, dumm, passiv und ... weniger massiv;]
  • Der größte Teil der Geschäftslogik ist aufgrund der dummen Ansichten verkapselt. Dies ergibt eine hervorragende Testbarkeit. Zum Testen des Domänenteils können Mock-Objekte eingeführt werden.
  • Getrennte Einheiten sind leichter im Kopf zu halten, die Verantwortlichkeiten sind klar aufgeteilt.

Cons

  • Sie werden mehr Code schreiben.
  • Barriere für unerfahrene Entwickler oder für diejenigen, die noch nicht mit dem Muster arbeiten.

MVP-Architektur Verwandte Beispiele