Apa perbedaan antara MVP dan arsitektur bersih

13

Pertanyaannya cukup jelas, hanya untuk menambah pemikiran saya:
Sejauh yang saya baca, Lapisan presentasi di Clean arch memiliki tanggung jawab yang sama seperti di MV di MVP.

Bagaimana seseorang memutuskan untuk memilih satu pola daripada yang lain?

Mehrdad Shokri
sumber
MVP adalah bagian dari arsitektur bersih, Artikel ini harus dibaca androidwave.com/android-mvp-architecture-for-beginners-demo-app
Surya Prakash Kushawah

Jawaban:

15

Apa yang disebut oleh Bob Martin " Arsitektur Bersih " lebih merupakan "arsitektur meta", pedoman tingkat tinggi untuk membuat arsitektur berlapis. Itu tidak mengatakan hal seperti

"Harus ada lapisan Model, lapisan Lihat dan lapisan Presentasi, dan mereka harus diimplementasikan menggunakan MVP ",

itu hanya berisi aturan yang lebih umum untuk lapisan seperti "dependensi harus pergi dari lingkaran luar ke lingkaran dalam, bukan sebaliknya" . Dan karena di MVP, View (= UI) mungkin mengenal Presenter, tetapi Presenter dipisahkan dari View oleh sebuah antarmuka, MVP hanyalah salah satu dari banyak solusi yang mungkin yang memenuhi aturan ini.

Tentu saja, seseorang dapat menggunakan MVP di dalam sistem "Arsitektur Bersih", tetapi ini bukan satu-satunya pendekatan yang benar. Setiap desain UI di mana "lapisan dalam" tidak tahu apa-apa yang istimewa tentang UI, dan di mana UI mengikuti juga aturan "Arsitektur Bersih" lainnya yang dijelaskan dalam artikel Bob Martin akan baik-baik saja.

Doc Brown
sumber
jika saya mengikuti pola MVP, apakah dijamin saya belum melanggar aturan arsitektur Bersih?
Mehrdad Shokri
1
@Mehrdad: tidak. MVP hanya membantu Anda untuk mendapatkan "Aturan Ketergantungan" dengan benar, dan hanya di antara lapisan View & Presenter, serta antara Presenter dan Model, tidak kurang, tidak lebih. Anda masih harus mengurus semua hal lain yang dijelaskan dalam artikel Bob Martin. Sebagai contoh, MVP sendiri tidak menghentikan siapa pun dari melewati struktur data yang kompleks antara lapisan (sebagai lawan dari struktur data sederhana yang disebutkan dalam artikel itu yang harus digunakan untuk melintasi batas).
Doc Brown