Jaka jest różnica między MVP a czystą architekturą

13

Pytanie jest oczywiste, aby dodać moje przemyślenia:
O ile przeczytałem, warstwa prezentacji w Clean arch ma taką samą odpowiedzialność jak w MV w MVP.

Jak ktoś decyduje się wybrać jeden wzór zamiast drugiego?

Mehrdad Shokri
źródło
MVP jest częścią czystej architektury, ten artykuł należy przeczytać androidwave.com/android-mvp-architecture-for-beginners-demo-app
Surya Prakash Kushawah

Odpowiedzi:

15

To, co Bob Martin nazwał „ czystą architekturą ”, jest bardziej „metaarchitekturą”, wytyczną wysokiego poziomu do tworzenia architektur warstwowych. Nie mówi nic takiego

„Musi istnieć warstwa modelu, warstwa widoku i warstwa prezentacji i muszą być zaimplementowane przy użyciu MVP ”,

zawiera tylko bardziej ogólne reguły dla warstw, takie jak: „zależności muszą przechodzić od zewnętrznych kół do wewnętrznych kół, a nie odwrotnie” . A ponieważ w MVP Widok (= UI) może znać Prezentera, ale Prezenter jest oddzielony od Widoku przez interfejs, MVP jest tylko jednym z wielu możliwych rozwiązań, które spełniają tę zasadę.

Oczywiście można użyć MVP w systemie „Czystej architektury”, ale nie jest to jedyne prawidłowe podejście. Każdy projekt interfejsu użytkownika, w którym „wewnętrzne warstwy” nie znają niczego specjalnego na temat interfejsu użytkownika, i gdzie interfejs użytkownika jest zgodny z innymi zasadami „Czystej architektury” opisanymi w artykule Boba Martina, będzie w porządku.

Doktor Brown
źródło
jeśli przestrzegam wzorca MVP, czy jest gwarantowane, że nie naruszyłem zasad architektury Clean?
Mehrdad Shokri
1
@Mehrdad: nie. MVP po prostu pomaga prawidłowo „Regułę zależności” i tylko między warstwami View & Presenter, a także między Presenter a Modelem, nie więcej. Nadal musisz dbać o wszystkie inne rzeczy opisane w artykule Boba Martina. Na przykład sam MVP nie powstrzymuje nikogo przed przekazywaniem złożonych struktur danych między warstwami (w przeciwieństwie do prostych struktur danych wymienionych w tym artykule, które powinny być używane do przekraczania granic).
Doc Brown