2014-07-24 2 views
7

Ich möchte meine nächste Anwendung mit MVP-Muster implementieren, also begann ich einige Artikel darüber zu lesen, wie es implementiert werden sollte. Das Hauptproblem für mich ist, dass es verschiedene Ansätze für dieses Muster gibt. Einige Leute sagen, dass wir Aktivität als eine Sichtweise betrachten sollten, aber einige andere sollten diese Aktivität als Moderatorin behandeln.Android MVP - sollte eine Aktivität eine Ansicht oder ein Moderator sein?

Aktivität als eine Ansicht ist hier beschrieben: und es ist sinnvoll. Aber auf der anderen Seite fand ich diese Antwort mit ein paar Upvotes https://stackoverflow.com/a/7609943 und jemand sagt, dass Aktivität sollte ein Moderator sein.

Hat jemand eine Erfahrung mit diesem Muster?

Antwort

2

Ich denke, es ist sicher, Aktivität als Moderator zu betrachten. Die Ansicht kann als XML-Layoutdatei betrachtet werden. Der Präsentator ist etwas, das eine direkte Verbindung zu Model (s) und View (s) hat, wie in der Antwort, die Sie oben gepostet haben, steht. In einer Aktivität verbinden Sie sich mit den Views und bleiben als Vermittler zwischen den Views und den Model (s), was effektiv die Funktionalität des Presenters ist. Es nimmt Eingangsereignisse von den Views und legt die Werte fest, die von den Model (s) empfangen werden, um in den Views angezeigt zu werden.

+2

Ansicht bedeutet nicht, Details der Implementierung zu Grunde liegen. Eine Ansicht ist nur eine Abstraktion, die auf viele Arten implementiert werden kann (eine GWT-Ansicht, eine Mock-Ansicht, eine Android-basierte Ansicht).Ich glaube wirklich, dass eine Aktivität in Android näher an der Ansicht ist, da die Aktivität dazu neigt, die Implementierungsdetails (zugrunde liegendes Layout-XML usw.) zu kennen. Beim Komponententest ist der Presenter eine Aktivität, die Sie an die Android-Umgebung bindet, während ein separater View-Layer-Agnostic-Moderator viel mehr Flexibilität bietet (Sie können Ihre Moderatoren auf diese Weise einfach mit 'mvn test' testen). –

+0

Was schlagen Sie als Moderator vor? –

+1

Wie ich oben gesagt habe, sollte der Moderator ein agnostischer Zwischenmensch sein. Zum Beispiel kann es sich um eine einfache Klasse handeln, die im einfachsten Fall über Schnittstellen auf ein Modell und eine Ansicht verweist und die Interaktion und den Workflow zwischen dem Modell und der Ansicht diktieren kann. Angenommen, Sie haben einen solchen Präsentator, der leicht für verschiedene Umgebungen wiederverwendet werden kann: Android, GWT usw. –

8

Nach einem Moment denke ich, Aktivität sollte als eine Ansicht betrachtet werden. Wenn wir die Geschäftslogik von der Aktivität trennen, ist es leicht, die Aktivität durch ein Fragment oder eine Sicht zu ersetzen. Wir können sogar unsere Modelle und Präsentatoren verwenden und sie in der Desktop-Anwendung verwenden und ihnen einfach neue Ansichten hinzufügen. Es ist auch besser für Testzwecke Moderator als normales Objekt zu erstellen, nicht als Aktivität.

7

Aktivität ist sehr nah an Ihrem Layout, so sollte es eine Ansicht sein. Und Ihre Geschäftslogik sollte im Präsentator enthalten sein, der von Ihrer Aktivität erstellt wurde. Um mehr zu verstehen über MVP einen Blick auf - MVP for android

enter image description here

0

Der Begriff Schauen Sie sich hier überlastet ist, android Ansicht ist anders als die Ansicht sollte verwendet werden im MVP-Muster. Ansicht ist eine Schnittstelle, die entweder von der Aktivität/dem Fragment implementiert werden soll. Sie können einen Blick auf Official Android MVP Examples werfen.

Ich werde vorschlagen, es von der basic one zu starten. Hier ist ein Ablauf von der Seite.

enter image description here

+0

aufgrund der von Ihnen angegebenen Dokumentation "In dieser Version der App ist die Aktivität der Gesamtcontroller, der Ansichten und Präsentatoren erstellt und verbindet . " – YTerle

Verwandte Themen