Perbezaan Antara MVC dan MVP Perbezaan antara

Anonim

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 merupakan logik permohonan untuk pengguna. Ia dipisahkan dari input dan persembahan (dikenali sebagai GUI), dan membenarkan pembangunan bebas.

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

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

Bahagian model MVP menentukan data yang akan dipaparkan (atau bertindak ke atas) dalam antara muka pengguna. Bahagian paparan memaparkan data yang ditakrifkan dalam model, dan menghantar arahan pengguna yang diminta (dikenali sebagai peristiwa) kepada penyampai (yang akan bertindak atas data ini). Penyampai, kemudian, bertindak pada model dan pandangan model. Oleh itu, ia mampu mengambil data dari repositori (didapati dalam model), meneruskan data, dan memformatkannya, supaya ia dapat dengan mudah dipaparkan dalam paparan.

Terdapat pelbagai variasi MVC. Oleh itu, aliran kawalan berada dalam susunan yang sangat ketat: Pertama, pengguna akan berinteraksi dengan antara muka (menekan butang pada tetikus, contohnya), dan kemudian pengawal menjaga peristiwa masukan dan mengubahnya menjadi tindakan pengguna yang sesuai. Seterusnya, pengawal memberitahu model apa yang pengguna lakukan, yang kemungkinan akan menyebabkan model mengubah keadaannya (sebagai kemas kini, sebagai contoh). Pandangan kemudian menimbulkan persoalan kepada model untuk menghasilkan 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, pandangan mengubah model menjadi interaksi mesra pengguna, dan pengawal menerima input; berhubung dengan MVP, model itu mentakrifkan data, paparan memaparkannya, dan penyampai bertindak pada model dan pandangannya.