Nie ma dokładnej/poprawna definicja realizacji MVP w Androidzie
Aby odpowiedzieć na to pytanie, moim zdaniem Presenter
nie powinny mieć żadnego Android logiki.
Jako taki, Adapter
będzie „View
” wtedy to Presenter Dostarcza dane (za pośrednictwem Activity
lub Fragment
) i to właśnie zajmuje się, jak przedstawić ten.
Zrobiłbym MVP w następujący sposób.
model - POJO'S, przetwarzania, przechowywania (SQLlite) i pobierania danych (http). Oczywiście podzieliłem logikę POJO, parsowanie i DB na podkatalogi - ale to wszystko wpada w Model dla mnie.
Zobacz - Activity
, Fragment
, Adapters
- Działania & Fragment hold odniesienie do Presenter, który daje im danych do wyświetlenia. W jaki sposób te dane/wiadomości są wyświetlane, wygląd + styl itd., Są przetwarzane w View
.
Presenter - Bliski człowiek, zapewnia logikę do wejść czyli kliknięcia przycisku, odzyskiwanie danych, walidacja wejść & następnie przekazuje wynik z powrotem do widoku (Activity
lub Fragment
)
Oto wielki artykuł na MVP
oto uproszczony diagram z MVP
Odpowiedź modyfikowany ten question (odpowiedział również przeze mnie)
myślę, że Android widok adaptery są czysto V zakres rzeczy, a jeśli są adaptery prezenterów - to prezenterzy są wewnętrzne gdzieś w implementacji widoku . Ponadto prezenterzy nie powinni zawierać logiki biznesowej, ponieważ są jedynie mediatorami pomiędzy literami M i V. W moim obecnym projekcie opartym na MVP prezenterowie nie są w ogóle świadomi kart listy, ponieważ nie powinni przejmować się wyświetlaniem listy __ rzeczy (np. prezenter zasugeruje widok: "wyświetlaj trasy w jakiś sposób" i po prostu słucha zdarzenia widoku "onRouteSelected", ponieważ trasa może być uzyskana z dowolnego rodzaju widżetów, niekoniecznie z listy). –
Czy masz więc odniesienie do prezentera wewnątrz adaptera? Czy możesz dodać słuchaczy do zdarzeń adapterów, a następnie przekierować do [email protected] –
Tak, drugi przypadek: adaptery mogą wchodzić w interakcje z widokami hostingu, a następnie konkretny widok decyduje o przekształceniu/delegowaniu zdarzenia do prezentera (lub prezentera-słuchacza - zależy od tego, w jaki sposób oddzielasz prezenterów od interfejsów słuchaczy). –