Ich baue eine Android App mit MVP, und ich habe eine Frage zu diesem Muster.Model View Presenter - gleiche Ansicht, verschiedene Presenter
Sagen Sie, ich habe einen Bildschirm für Erstellen einer neuen Person. Dieser Bildschirm zeigt einen EditText
zum Einfügen des Namens, einen anderen für den Nachnamen, einen ImageView
, um das ausgewählte Foto anzuzeigen, usw. Dies wird zu einer View
Schnittstelle führen, die von der Fragment
implementiert wird. Es wird mit einer Presenter
Schnittstelle zusammenarbeiten, die von einer anderen Klasse implementiert wird.
Fein.
Jetzt habe ich ein weiteres Feature: ein Bildschirm für Bearbeiten einer vorhandenen Person. Wie es passiert, ist die View
für diese Funktion identisch mit der zum Erstellen einer neuen Person. Die Presenter
ist jedoch anders. Es beginnt mit dem Laden der vorhandenen Person aus db, um die Ansicht mit den aktuellen Daten zu füllen, und die Aktion über die Datenbank beim Klicken auf "Speichern" ist ein Update anstelle einer Einfügung.
Also ich denke, das ist ein Beispiel für MVP , wo One View mit verschiedenen Implementierungen des Präsentators funktioniert, um verschiedene Anwendungsfälle zu erreichen.
Glauben Sie, dass dies eine richtige Annahme ist, oder denken Sie, verschiedene Funktionen verschiedene
View
undPresenter
Schnittstellen haben sollte?- Auch
, wenn Sie mit einer gemeinsamen
View
und verschiedenenPresenters
werden, wird die Umsetzung derView
gemeinsam sein, oder wäre es auf die gleiche Schnittstelle von zwei Klassen implementiert führen? In der Praxis sehe ich zwei Möglichkeiten.Mit nur einem
Fragment
dieView
implementieren. Abhängig davon, ob der Benutzer eine neue Person erstellen oder eine vorhandene aktualisieren möchte, sollte das Fragment einen anderen Presenter erhalten und verwenden.Mit zwei
Fragment
s. Jeder würde einen anderenPresenter
instanziieren. Verwenden Sie Komposition oder Vererbung, um die Replikation von Code zwischen den beiden Fragmenten zu vermeiden.
Was denken Sie besser ist, in diesen Fällen zu tun?
Danke.
Ich denke, Sie sind auf dem richtigen Weg. –
Sie können die gleiche 'Ansicht' teilen und haben nur ein' Fragment', das je nach Verwendungszweck einen anderen 'Moderator' erhält (bearbeiten oder erstellen). – pdegand59