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


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.