Perbezaan antara MVC dan MVVM

Perbezaan antara MVC dan MVVM

Laman web lebih daripada apa yang kelihatan di luar. Malah, corak struktur laman web berbeza -beza seperti laman web itu sendiri. Laman web adalah laman web komponen yang kompleks yang berinteraksi antara satu sama lain untuk menjalankan aplikasi. Ambil Facebook sebagai contoh, yang merupakan salah satu laman web yang paling kompleks yang kami gunakan hampir setiap hari. Pergi ke halaman rumahnya dan anda akan melihat laman web mengendalikan hampir sedozen permintaan data pada satu masa untuk mengisi halaman dengan pelbagai komponen. Seseorang dapat dengan mudah membayangkan bahawa logik di sebalik bagaimana komponen berinteraksi antara satu sama lain untuk menjalankan program seperti Facebook boleh sangat berbeza dari laman web lain. Fungsi teras mana -mana laman web ditakrifkan oleh kemudahan yang mana hujung depan berinteraksi dengan model yang sesuai untuk mendapatkan data yang ditonton oleh penonton. MVC dan MVVM adalah dua corak reka bentuk yang popular dalam dunia pembangunan perisian.

Apa itu MVC?

MVC, Pendek untuk Model-View-Controller, adalah model reka bentuk aplikasi yang biasa digunakan untuk membangunkan antara muka pengguna moden. Corak MVC adalah di tengah-tengah pembangunan perisian berorientasikan objek moden ketika ia muncul dari komuniti reka bentuk berorientasikan objek. Ia pada asalnya dinamakan Thing-Model-View- Editor pada tahun 1979, tetapi kemudiannya dipermudahkan dan dinamakan semula sebagai Model-View-Controller. Ia digunakan secara besar -besaran untuk reka bentuk dan pembangunan aplikasi mudah alih dan web. Ia memisahkan antara muka pengguna aplikasi ke dalam tiga bahagian yang berbeza: model, paparan dan pengawal.

Model: Model mewakili satu set kelas yang menggambarkan data yang anda rancangkan untuk digunakan dalam aplikasi. Ia menerangkan format biasa untuk data tetapi juga mungkin mengandungi peraturan perniagaan, penukaran, logik pengesahan, dan pelbagai fungsi lain.

Lihat: Pandangan mewakili data yang akan dipaparkan dari model. Ia mentakrifkan bagaimana antara muka pengguna aplikasi akan dipaparkan. Model boleh mempunyai sebilangan pandangan bergantung pada aplikasi. Model pandangan, dalam istilah reka bentuk, pada dasarnya menggambarkan komponen UI seperti HTML, JQuery, dan sebagainya.

Pengawal: Pengawal adalah bahagian tengah aplikasi MVC yang mengendalikan komunikasi dari pengguna dalam bentuk peristiwa, aliran aplikasi keseluruhan dan logik khusus aplikasi. Acara kemudian ditukar kepada permintaan perkhidmatan dan diserahkan kepada model atau pandangan. Ia adalah satu -satunya komponen di mana pengguna berinteraksi dengan sistem.

Apa itu MVVM?

Model-View-ViewModel, atau MVVM, adalah corak seni bina perisian popular yang biasa digunakan untuk membangunkan aplikasi web yang boleh diguna semula dan mudah diuji. MVVM didasarkan pada corak MVC tetapi bertambah baik pada model MVC dengan memperkenalkan kelas baru yang dipanggil ViewModel, yang menguruskan data khusus untuk pandangan. Objektif teras model MVVM adalah untuk mempunyai pemisahan yang benar antara model dan komponen pandangan. Komponen utama model adalah: Model, Lihat dan ViewModel.

Model: Prinsipnya tetap sama seperti dalam model MVC. Model ini mewakili logik perniagaan dan data dan menentukan bagaimana data harus dimanipulasi.

Lihat: Model paparan mewakili data yang akan dipaparkan tetapi tidak melakukan manipulasi pada data. Pandangannya sama seperti di MVC, kecuali pengikatan data mesti ditetapkan untuk pandangan, yang dilakukan dengan menambahkan pandangan ke pandangan.

ViewModel: Ini adalah komponen yang paling penting dalam model kerana ia direka untuk menggunakan fungsi mengikat data, yang sebenarnya, membantu untuk mengekalkan pandangan yang terpisah dari model, dan pada masa yang sama, bertindak sebagai pengawal untuk memudahkan komunikasi antara pandangan dan komponen model.

Perbezaan antara MVC dan MVVM

Corak

- Model-View-Controller (MVC) adalah model reka bentuk aplikasi yang biasa digunakan untuk membangunkan antara muka pengguna moden. Ia memisahkan antara muka pengguna aplikasi ke dalam tiga bahagian yang berbeza: model, paparan dan pengawal. Model-View-ViewModel (MVVM), sebaliknya, adalah varian moden model MVC yang biasa digunakan untuk membangunkan aplikasi web yang boleh diguna semula dan mudah diuji. Komponen utama model MVVM adalah model, pandangan, dan viewModel.

Mengikat data

- Ciri utama yang membezakan MVVM dari corak reka bentuk perisian lain adalah pengikatan data, yang hanya merupakan mekanisme yang menghubungkan antara muka pengguna dengan logik perniagaan. Ini adalah teknologi utama yang menghubungkan pandangan dengan pandangan mereka yang memastikan model dan sifatnya selaras dengan pandangan dalam pandangan. Ia menghapuskan keperluan untuk mendedahkan keseluruhan model kepada pandangan.

Pengawal

- Perbezaan utama antara kedua -dua corak seni bina adalah bahawa di MVC, pengawal bertanggungjawab untuk menguruskan komunikasi antara model dan pandangan menggunakan peristiwa, sedangkan rangka kerja melakukan semua pengangkat berat dalam MVVM menggunakan ciri yang disebut data mengikat. ViewModel dalam MVVM membantu mengekalkan pandangan yang terpisah dari model, dan pada masa yang sama, bertindak sebagai pengawal untuk memudahkan komunikasi antara pandangan dan komponen model.

MVC vs. MVVM: Carta Perbandingan

Ringkasan

Walaupun kedua -dua MVC dan MVVM adalah derivatif model MVC, MVVM adalah varian moden model MVC yang memperkenalkan kelas baru yang dipanggil ViewModel, yang menguruskan data yang khusus untuk pandangan. Objektif teras model MVVM adalah untuk mempunyai pemisahan yang benar antara model dan komponen pandangan. Di MVC, pengawal bertanggungjawab untuk menguruskan komunikasi antara model dan pandangan. Walau bagaimanapun, dalam MVVM, ViewModel membantu untuk mengekalkan pandangan yang terpisah dari model dan juga bertindak sebagai pengawal untuk memudahkan komunikasi antara komponen.