Qual è la differenza tra MVP e architettura pulita


13

La domanda è autoesplicativa, solo per aggiungere i miei pensieri:
per quanto ho letto, il livello di presentazione in Clean Arch ha la stessa responsabilità di MV in MVP.

Come si decide di scegliere uno schema anziché l'altro?


MVP fa parte di un'architettura pulita, questo articolo dovrebbe essere letto androidwave.com/android-mvp-architecture-for-beginners-demo-app
Surya Prakash Kushawah

Risposte:


15

Quella che Bob Martin chiamava " Clean Architecture " è più una "meta-architettura", una linea guida di alto livello per la creazione di architetture a strati. Non dice niente del genere

"Devono essere presenti un livello Modello, un livello Visualizza e un livello Presentazione e devono essere implementati mediante MVP ",

contiene solo regole più generali per i livelli come "le dipendenze devono passare dai cerchi esterni ai cerchi interni, non viceversa" . E poiché in MVP, la Vista (= UI) potrebbe conoscere il Presenter, ma il Presenter è disaccoppiato dalla Vista da un'interfaccia, MVP è solo una delle molte soluzioni possibili che soddisfano questa regola.

Naturalmente, si può usare MVP all'interno di un sistema "Clean Architecture", ma questo non è l'unico approccio corretto. Qualsiasi progetto di interfaccia utente in cui gli "strati interni" non conoscono nulla di speciale sull'interfaccia utente e in cui l'interfaccia utente segue anche le altre regole di "architettura pulita" descritte nell'articolo di Bob Martin andrà bene.


se seguo il modello MVP, è garantito che non ho violato le regole dell'architettura pulita?
Mehrdad Shokri,

1
@Mehrdad: no. MVP ti aiuta a ottenere correttamente la "Regola di dipendenza", e solo tra i livelli View & Presenter, nonché tra Presenter e Model, niente di meno, niente di più. Devi ancora occuparti di tutte le altre cose descritte nell'articolo di Bob Martin. Ad esempio, MVP da solo non impedisce a nessuno di passare strutture di dati complesse tra i livelli (al contrario delle semplici strutture di dati menzionate in quell'articolo che dovrebbero essere utilizzate per attraversare i confini).
Doc Brown,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.