Chcę zaimplementować moją kolejną aplikację ze wzorem MVP, więc zacząłem czytać artykuły o tym, jak powinno to zostać zaimplementowane. Głównym problemem dla mnie jest to, że istnieją różne podejścia do tego schematu. Niektórzy twierdzą, że powinniśmy traktować działalność jako widok, ale niektórzy inni, że działalność powinna być prezenterem.Android MVP - czy działanie powinno być widokiem lub prezenterem?
Aktywność jako widoku jest opisana tutaj: MVP Android i ma to sens. Ale z drugiej strony znalazłem tę odpowiedź za pomocą kilku upvotes https://stackoverflow.com/a/7609943 i ktoś powiedział, że działalność powinna być prezenterem.
Czy ktoś ma doświadczenie z tym wzorem?
Widok nie sugeruje szczegółów implementacji. Widok to tylko abstrakcja, którą można zaimplementować na wiele sposobów (widok GWT, widok fałszywy, widok oparty na systemie Android).Naprawdę uważam, że działanie w systemie Android jest bliższe Viewowi, ponieważ działanie ma na celu poznanie szczegółów implementacji (bazowego układu XML itd.). W testowaniu jednostkowym, gdy prezenter jest działalnością, wiąże cię mocno ze środowiskiem Android, podczas gdy osobny prezenter z niezależną warstwą podglądu daje o wiele większą elastyczność (możesz w łatwy sposób przetestować swoich prezenterów za pomocą 'mvn test' w ten sposób). –
Więc co proponujesz jako prezenter? –
Jak już wspomniałem powyżej, prezenter powinien być pośrednikiem w poglądowej warstwie pośredniej. Na przykład może to być prosta klasa, która odwołuje się do modelu i widoku za pośrednictwem interfejsów w najprostszym przypadku i może dyktować interakcję i przepływ pracy między modelem a widokiem. Przypuśćmy, że masz takiego prezentera, który może być łatwo ponownie użyty w różnych środowiskach: Android, GWT itp. –