MVC vs MVP
Model View Controller (juga dikenal sebagai MVC) adalah pola yang bersifat arsitektur yang digunakan khusus dalam rekayasa perangkat lunak. Pola khusus ini digunakan untuk mengisolasi apa yang dikenal sebagai 'logika domain' - yang hanya merupakan logika aplikasi untuk pengguna. Ini terisolasi dari input dan presentasi (dikenal sebagai GUI), dan memungkinkan pengembangan independen.
Model View Presenter (juga dikenal sebagai MVP) adalah permutasi langsung dari MVC. Ini adalah pola perangkat lunak (lebih khusus, pola desain antarmuka pengguna) yang dirancang khusus untuk membantu pengujian unit otomatis, dan meningkatkan apa yang dikenal sebagai pemisahan kekhawatiran dalam logika presentasi. Pemisahan masalah pada dasarnya adalah proses di mana program komputer dipisahkan menjadi fitur-fitur berbeda yang tidak tumpang tindih, dalam hal bagaimana mereka berfungsi.
Bagian model MVC pada dasarnya adalah pola yang mewakili data melalui domain spesifik data yang digunakan untuk memungkinkan aplikasi untuk beroperasi. Bagian tampilan mengubah model menjadi interaksi yang cocok untuk pengguna - ini biasanya elemen antarmuka pengguna. Akhirnya, bagian pengontrol paling tepat menerima input. Dengan membuat keputusan untuk objek yang ditemukan dalam model, controller berfungsi sebagai katalis untuk respons.
Bagian model MVP mendefinisikan data yang akan ditampilkan (atau ditindaklanjuti) di antarmuka pengguna. Bagian tampilan menampilkan data yang ditentukan dalam model, dan mengirimkan perintah yang diminta pengguna (dikenal sebagai peristiwa) ke presenter (yang akan bertindak berdasarkan data ini). Presenter bertindak sebagai model dan melihat model. Dengan demikian, ia mampu mengambil data dari repositori (ditemukan dalam model), melanjutkan data, dan memformatnya, agar mudah ditampilkan dalam tampilan.
Ada berbagai varian MVC. Dengan demikian, aliran kontrol berada dalam urutan yang sangat ketat: Pertama, pengguna akan berinteraksi dengan antarmuka (misalnya, menekan tombol pada mouse), dan kemudian pengontrol menangani kejadian input dan mengubahnya menjadi tindakan pengguna yang sesuai. Selanjutnya, controller memberitahukan model tentang apa yang telah dilakukan pengguna, yang kemungkinan besar akan mengakibatkan model mengubah statusnya (sebagai pembaruan, misalnya). Pandangan kemudian mengajukan pertanyaan kepada model untuk menghasilkan antarmuka pengguna. Akhirnya, antarmuka pengguna menunggu instruksi yang akan memulai kembali siklus.
Ringkasan:
1. MVC adalah pola arsitektur yang mengisolasi logika domain; MVP adalah keturunan dari MVC yang dirancang untuk membantu menguji unit otomatis dan meningkatkan pemisahan masalah.
2. Sehubungan dengan MVC, model merepresentasikan data, view mengubah model menjadi interaksi yang ramah pengguna, dan controller menerima input; berkenaan dengan MVP, model mendefinisikan data, tampilan menampilkannya, dan presenter bertindak pada model dan pandangannya.