Perbezaan antara MVC dan MVP

Perbezaan antara MVC dan MVP

MVC vs MVP

Model View Controller (juga dikenali sebagai MVC) adalah corak sifat seni bina yang digunakan khusus dalam kejuruteraan perisian. Corak khusus ini digunakan untuk mengasingkan apa yang dikenali sebagai 'logik domain' - yang hanya logik aplikasi untuk pengguna. Ia diasingkan dari input dan persembahan (dikenali sebagai GUI), dan membenarkan pembangunan bebas.

Model View Presenter (juga dikenali sebagai MVP) adalah permutasi langsung MVC. Ini adalah corak perisian (lebih khusus, corak reka bentuk antara muka pengguna) yang direka khusus untuk membantu ujian unit automatik, dan memperbaiki apa yang dikenali sebagai pemisahan kebimbangan dalam logik persembahan. Pemisahan kebimbangan pada dasarnya adalah proses yang mana program komputer dipisahkan menjadi ciri yang berbeza yang tidak bertindih, dari segi cara mereka berfungsi.

Bahagian model MVC pada dasarnya adalah corak yang mewakili data melalui domain tertentu data yang digunakan untuk membolehkan aplikasi beroperasi. Bahagian paparan mengubah model menjadi interaksi yang sesuai untuk pengguna - ini biasanya merupakan elemen antara muka pengguna. Akhirnya, bahagian pengawal paling tepat menerima input. Dengan membuat keputusan untuk objek yang terdapat dalam model, pengawal berfungsi sebagai pemangkin untuk respons.

Bahagian model MVP mentakrifkan data yang akan dipaparkan (atau bertindak) di antara muka pengguna. Bahagian paparan memaparkan data yang ditakrifkan dalam model, dan menghantar arahan pengguna (dikenali sebagai peristiwa) kepada penyampai (yang akan bertindak atas data ini). Penyampai, kemudian, bertindak pada model dan pandangan model. Oleh itu, ia mampu mendapatkan semula data dari repositori (yang terdapat dalam model), meneruskan data, dan memformatnya, agar ia dapat dipaparkan dengan mudah dalam pandangan.

Terdapat pelbagai variasi MVC. Oleh itu, aliran kawalan berada dalam urutan yang sangat ketat: Pertama, pengguna akan berinteraksi dengan antara muka (menekan butang pada tetikus, misalnya), dan kemudian pengawal menjaga peristiwa input dan mengubahnya menjadi tindakan pengguna yang sesuai. Seterusnya, pengawal memberitahu model apa yang telah dilakukan pengguna, yang kemungkinan besar akan menghasilkan model yang mengubah keadaannya (sebagai kemas kini, sebagai contoh). Pandangan kemudian menimbulkan persoalan kepada model untuk menjana antara muka pengguna. Akhirnya, antara muka pengguna menunggu arahan yang akan memulakan semula kitaran.

Ringkasan:

1. MVC adalah corak seni bina yang mengasingkan logik domain; MVP adalah keturunan MVC yang direka untuk membantu menguji unit automatik dan meningkatkan pemisahan kebimbangan.

2. Berhubung dengan MVC, model mewakili data, paparan mengubah model menjadi interaksi mesra pengguna, dan pengawal menerima input; Berhubung dengan MVP, model mentakrifkan data, pandangan memaparkannya, dan penyampai bertindak pada model dan pandangannya.