Perbezaan antara MVVM dan MVP

Perbezaan antara MVVM dan MVP

Tujuan pembangunan perisian adalah untuk membina penyelesaian yang menangani keperluan dan masalah untuk pengguna dan perniagaan.  Untuk mencapai ini, teknologi dan corak seni bina yang berbeza seperti Model-View-ViewModel (MVVM) dan Model-View-Presenter (MVP) digunakan.

Seperti apa sahaja yang dihasilkan, langkah pertama ialah peringkat perancangan dan reka bentuk.  Proses reka bentuk perisian boleh menjadi spesifikasi berdasarkan set alat teknologi pilihan, dan ia dapat merangkumi semua aktiviti dari konsep - ke perancangan - ke - pelaksanaan - ke - kemas kini dan pengubahsuaian.

Ia meliputi reka bentuk seni bina peringkat rendah dan peringkat tinggi, berdasarkan corak seni bina terpilih, dan memetakan penyelesaian yang boleh diguna semula menggunakan corak reka bentuk.

Struktur Aplikasi Perisian

Senibina perisian mentakrifkan struktur aplikasi yang memenuhi keperluan teknikal, operasi, dan pengguna dan merujuk kepada bagaimana kod tersebut dianjurkan dan diuruskan.

Memutuskan seni bina aplikasi perisian adalah kritikal kerana ia bukan sebahagian daripada aplikasi yang telah dibangunkan; Oleh itu corak seni bina mesti diputuskan sebelum mana -mana pengaturcaraan bermula.

Corak seni bina agak berbeza dengan corak reka bentuk kerana skop mereka jauh lebih luas dengan menangani lebih banyak isu teknikal seperti prestasi perkakasan dan batasan, dan ketersediaan tinggi.    Contoh corak seni bina yang berbeza adalah MVC, MVVM, dan MVP.

Sebaliknya, corak reka bentuk adalah amalan terbaik yang diformalkan yang memudahkan pembangunan berorientasikan objek yang boleh diguna semula dan lebih mudah untuk mengekalkan dan mengubah daripada seni bina aplikasi. 

Corak seni bina

Model View Controller (MVC) adalah salah satu corak seni bina pertama yang dibangunkan untuk aplikasi web, mendapat populariti dari pertengahan hingga akhir sembilan puluhan, terutamanya dengan komuniti Java.

Rangka kerja yang lebih baru, seperti Django untuk Python dan Rails (Ruby on Rails), mempunyai tumpuan yang kuat terhadap penggunaan pesat, itulah sebabnya MVC mengambil bahagian pasaran sebagai tarikan besar dalam corak seni bina.

Secara tradisinya, pembangunan antara muka pengguna mengandungi banyak kod untuk mengendalikan logik rumit supaya corak seni bina direka untuk mengurangkan kod di peringkat antara muka pengguna (UI), menjadikannya lebih 'bersih' dan boleh diurus.

Oleh itu, dengan corak MVC, aplikasi web terdiri daripada

  • Model (Data)
  • Lihat (antara muka untuk melihat dan memanipulasi data)
  • Pengawal (Operasi dan tindakan yang dilakukan pada data)

The Model mengendalikan logik data dan perniagaan dan ada tidak kebergantungan antara Model dan juga Pengawal atau Lihat.

The Lihat membentangkan data kepada pengguna dalam format yang disokong dan susun atur yang diperlukan, dan ketika Pengawal menerima permintaan pengguna (untuk mengambil data), ia memanggil sumber yang berkaitan yang diperlukan untuk melengkapkan permintaan.

Mari gunakan corak ini untuk membina kedai buku dalam talian.

Pengguna boleh mencari, melihat, mendaftar, dan membeli buku, serta menguruskan profil dan senarai buku mereka.   Apabila pengguna mengklik pada kategori sci-fi, semua buku berkaitan harus dipaparkan seperti yang tersedia.

The Pengawal mengendalikan tindakan yang menguruskan buku (senarai, tambah, pandangan, dll).  Ada banyak Pengawal dengan satu utama Pengawal 'mengarahkan lalu lintas'.

Untuk contoh ini, Pengawal dinamakan Controller_Books.PHP dan The Model (e.g. Model_Books.php) mengendalikan data dan logik yang berkaitan dengan buku.

Akhir sekali, berbeza Pandangan diperlukan, seperti ketika menambahkan buku ke kereta dalam talian atau ketika melihat perincian buku dengan imej dan ulasan.

The CONTROLLER_BOOKS.php menerima tindakan (permintaan pengguna) dari utama Pengawal (e.g. indeks.php).  The CONTROLLER_BOOKS.php menganalisis permintaan dan panggilan Model_Books.php (data) untuk mengembalikan senarai buku sci-fi.

Tanggungjawab Model adalah untuk memberikan maklumat itu, menggunakan logik yang digunakan (menggunakan penapis carian).   The Pengawal kemudian mengambil maklumat dan menyerahkannya kepada yang relevan Lihat (Paparan carian, paparan cetak, paparan terperinci dll) dan maklumat dibentangkan (melalui Lihat) kepada pengguna yang memulakan permintaan.

Ini adalah asas-asas corak MVC, yang telah berkembang variasi corak seni bina, seperti model-view-presenter (MVP), model-viewmodel (MVVM), hierarki-model-view-controller (HMVC), dan Model-View-Adapter (MVA), dll.

Corak MVP

Model-View-Presenter (MVP)

The Corak MVP telah wujud sebentar dan merupakan variasi MVC.  Ia direka khusus untuk automasi ujian di mana objektifnya adalah untuk meningkatkan jumlah kod yang boleh diuji melalui automasi, dan corak menangani beberapa isu dengan lapisan persembahan, mengasingkan logik perniagaan dari UI.

Skrin adalah pandangan, data yang dipaparkan adalah model, dan penyampai mengikat kedua -duanya.

MVP terdiri daripada komponen berikut dengan tanggungjawab yang berasingan:

  • Model (mentakrifkan data yang akan dipaparkan)
  • Lihat (Memaparkan data dari model dan laluan permintaan pengguna kepada penyampai).
  • Penyampai (Berinteraksi antara pandangan dan model dan cangkuk mereka bersama -sama)

The Lihat (laman web) memaparkan dan menguruskan kawalan halaman dengan menghantar acara (permintaan pengguna) ke Penyampai yang dimulakan di Lihat.

The Penyampai menjawab peristiwa ini dengan membaca dan mengemas kini Model Untuk menukar Lihat dan oleh itu, Penyampai tanggungjawab adalah untuk mengikat Model dan Lihat.

Setelah melihat MVC dan MVP corak, kesamaan kedua -duanya mempunyai tanggungjawab berasingan bagi setiap komponen dan mereka menggalakkan pemisahan antara Lihat (Ui) dan Model (Data).  Perbezaan yang ketara antara corak ini lebih jelas dalam bagaimana corak dilaksanakan.

MVP Mungkin corak yang kompleks untuk dilaksanakan untuk penyelesaian lanjutan tetapi pastinya mempunyai manfaat yang besar jika dilaksanakan sebagai penyelesaian yang direka dengan baik, walaupun tidak semestinya menjadi pilihan yang sesuai untuk penyelesaian mudah.

Corak MVVM

Model-View-ViewModel (MVVM)

The Mvvm corak direka khusus untuk Yayasan Penyampaian Windows (WPF) dan platform Microsoft Silverlight, dan ia boleh digunakan pada semua Xaml [i] platform.

WPF adalah sistem Microsoft yang menjadikan antara muka pengguna dalam program berasaskan Windows dan pertama kali dikeluarkan .Rangka Kerja Bersih 3.0.

Mvvm telah disempurnakan dari MVC Dan dalam corak ini, Lihat aktif dengan tingkah laku, peristiwa, dan pengikatan data, dan Lihat disegerakkan dengan ViewModel (yang membolehkan pemisahan pembentangan dan mendedahkan kaedah dan arahan untuk mengurus dan memanipulasi Model.

Mvvm terdiri daripada tiga komponen teras:

  • Model (mewakili data dengan pengesahan dan logik perniagaan)
  • Lihat (Pandangan bertanggungjawab untuk menentukan struktur, susun atur, dan penampilan yang dilihat pengguna pada skrin. Sebaik-baiknya, pandangannya ditakrifkan semata-mata dengan XAML, dengan kod belakang yang terhad yang tidak mengandungi logik perniagaan.dua cara mengikat data antara Lihat dan ViewModel untuk memaparkan yang menyegerakkan model dan viewmodel dengan pandangan)
  • ViewModel (Memisahkan pandangan dari model, dan mendedahkan kaedah dan arahan untuk memanipulasi data (model).

The Lihat menerima data dari ViewModel (melalui pengikat data dan kaedah), dan pada masa runtime, Lihat akan berubah ketika bertindak balas terhadap peristiwa di ViewModel.

The ViewModel mengantara antara Lihat dan Model dan mengendalikan Lihat logik.  Ia berinteraksi dengan Model - mengambil data dari Model dan membentangkannya ke Lihat untuk mempamerkan.

Komponen -komponen ini semua dipadamkan antara satu sama lain yang membolehkan fleksibiliti yang lebih besar untuk mengerjakannya secara bebas, mengasingkan ujian unit, dan menukarnya, tanpa menjejaskan komponen lain.

Struktur ini membolehkan Model dan komponen lain untuk berkembang secara bebas, membolehkan pemaju bekerja pada aspek yang berbeza dari penyelesaiannya secara serentak.  Contohnya, di mana pereka bekerja di Lihat, mereka hanya menghasilkan sampel data tanpa memerlukan akses kepada komponen lain.  Ini memudahkan reka bentuk semula mudah antara muka pengguna sebagai Lihat dilaksanakan dalam xaml.

Seperti yang disebutkan sebelumnya dengan MVP, Penyelesaian mudah tidak memerlukan corak seni bina dan reka bentuk, seperti "Hello World!"Terlalu asas untuk mengikuti sebarang corak; Walau bagaimanapun, kerana lebih banyak ciri, fungsi, dan komponen diperkenalkan, kerumitan aplikasi meningkat dan begitu juga jumlah kod yang perlu diuruskan.

Ringkasnya

Sejak permulaan pembangunan antara muka pengguna, corak reka bentuk menjadi semakin popular untuk menjadikan proses pembangunan lebih mudah, aplikasi lebih berskala dan ia memudahkan ujian yang lebih mudah.

Perbezaan yang digambarkan antara corak MVP dan MVVM:

  • Dalam kedua -duanya MVP dan Mvvm, The Lihat adalah titik masuk ke aplikasi
  • Dalam MVP, terdapat pemetaan satu sama lain antara Lihat dan Penyampai, di mana di Mvvm, Hubungannya adalah satu-ke-banyak antara Lihat dan ViewModel.
  • MVP digunakan terutamanya untuk bentuk tingkap dan aplikasi telefon windows dan Mvvm direka untuk Silverlight, WPF, Knockout/AngularJS, dll.