Meiner Meinung nach sind die Unterschiede bei allen Varianten von Model-View-Controller-Mustern ( MVP , Passive Ansicht , Überwachender Controller , Ansicht Modell, usw. ) sind recht subtil. Es geht eigentlich nur darum, wer die Daten verarbeitet und von wem die Daten genommen werden. Sie alle versuchen, das gleiche Problem zu lösen, nämlich die Trennung von algo de noch etwas und die Lösungen tun dies alles auf ähnliche Weise.
Es ist fast offensichtlich, dass die Konzepte in der Umsetzung ähnlich sind, wenn man sie visuell betrachtet:
Simplistic MVC:
+-------+ manipulates data
| Model |<---------------------+
+-------+ |
| |
| gets data |
v |
+------------+ serves data +------+
| Controller |------------->| View |
+------------+ +------+
Simplistic MVP:
+-------+
| Model |
+-------+
| ^
| | get/manipulates data
v |
+-----------+ serve data +------+
| Presenter |-------------->| View |
| |<--------------| |
+-----------+ tell changes +------+
Sie sind sich insofern ähnlich, als dass die Klassenhierarchie in beiden gleich aussehen kann. Der Unterschied liegt jedoch in der unterschiedlichen Art und Weise, wie Daten angezeigt und bearbeitet werden. Wenn Sie Ihr eigenes MVC-System einführen, sind Sie dafür verantwortlich, wie es aussehen soll.
Es spielt eigentlich keine große Rolle, da sie alle auf dem Prinzip der Trennung von Codeteilen in selbständige logische Einheiten und der Verringerung von Code-Duplizierung beruhen. Solange Sie die Codekopplung niedrig sollte es am Ende gut funktionieren. Es ist nur von Bedeutung, wenn Sie die Architektur Ihrer Anwendung dogmatisch konsequent umsetzen wollen.
Seien Sie pragmatisch und entscheiden Sie sich für das, was Ihren Bedürfnissen am besten entspricht, denn am Ende werden Sie sowieso eine Mischung haben. Es sollte "ziemlich" einfach sein, zwischen den Varianten zu wechseln, je nachdem, was die Ansicht braucht. Befolgen Sie die SOLID Prinzipien und Sie sollten gut zurechtkommen. (Siehe auch dies über SOLID ).
Ich würde vorschlagen, dass Sie nachschauen, ob es MVC- oder MVP-Frameworks gibt, um zu sehen, wie es gemacht wird.