Perbezaan antara MVVM dan MVP

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

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

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

Struktur Aplikasi Perisian

Senibina perisian menentukan struktur aplikasi yang memenuhi keperluan teknikal, operasi, dan pengguna dan merujuk kepada bagaimana kod itu diuruskan dan diuruskan.

Memutuskan pada senibina aplikasi perisian adalah kritikal kerana ia bukan merupakan bahagian yang mudah dan boleh berubah dari suatu aplikasi yang telah dibangunkan; Oleh itu corak seni bina mesti diputuskan sebelum sesuatu program bermula.

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

Sebaliknya, corak reka bentuk formalkan amalan terbaik yang memudahkan pembangunan berorientasikan objek yang boleh diguna semula dan lebih mudah untuk mengekalkan dan berubah daripada senibina aplikasi. 

Corak Senibina

Model View Controller (MVC) adalah salah satu pola seni bina pertama yang dibangunkan untuk aplikasi web, mendapat populariti dari pertengahan hingga akhir tahun sembilan puluhan, terutama dengan masyarakat Jawa.

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

Secara tradisinya, pembangunan antara muka pengguna mengandungi banyak kod untuk mengendalikan logik rumit supaya corak arsitektur telah direka untuk mengurangkan kod di paras antara muka pengguna (UI), menjadikannya lebih bersih dan terurus.

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 data dan logik perniagaan dan ada tidak pergantungan antara Model dan juga Pengawal atau Lihat.

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

Mari kita gunakan corak ini untuk membina kedai buku dalam talian.

Pengguna boleh mencari, melihat, mendaftar, dan membeli buku, serta mengurus profil dan senarai buku mereka. Apabila pengguna mengklik kategori SCI-FI, semua buku yang berkaitan harus dipaparkan seperti yang tersedia.

The Pengawal mengendalikan tindakan yang menguruskan buku (senarai, tambah, paparan, dan sebagainya). Boleh jadi berbilang Pengawal dengan satu utama Pengawal 'mengarahkan trafik'.

Untuk contoh ini, Pengawal dinamakan controller_books.php dan Model (mis. model_books.php) mengendalikan data dan logik yang berkaitan dengan buku.

Akhir sekali, berbeza Pandangan akan diperlukan, seperti ketika menambahkan buku ke dalam troli online atau ketika melihat detail buku dengan gambar dan ulasan.

The controller_books.php menerima tindakan (permintaan pengguna) dari utama Pengawal (cth. index.php). The controller_books.php menganalisis permintaan dan panggilan model_books.php (data) untuk memulangkan senarai buku SCI-FI.

Tanggungjawab Model adalah untuk memberikan maklumat itu, dengan menggunakan sebarang logik yang digunakan (menggunakan penapis carian). The Pengawal kemudian mengambil maklumat tersebut dan lulus kepada yang relevan Lihat (paparan carian, paparan cetakan, paparan terperinci dan lain-lain) dan maklumat dibentangkan (melalui Lihat) kepada pengguna yang memulakan permintaan tersebut.

Inilah asas-asas corak MVC, yang telah mengubah corak-corak seni bina, seperti Model-View-Presenter (MVP), Model-View-ViewModel (MVVM), Hierarchical-Model-View-Controller (HMVC) dan Model-View-Adapter (MVA), dan sebagainya.

Corak MVP

Model-View-Presenter (MVP)

The Corak MVP telah wujud untuk seketika dan merupakan varian 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 Paparan, data yang dipamerkannya adalah Model, dan Penyedia cangkuk kedua-duanya bersama-sama.

MVP terdiri daripada komponen berikut dengan tanggungjawab berasingan:

  • Model (mentakrifkan data yang akan dipaparkan)
  • Lihat (memaparkan data dari Model dan permintaan pengguna laluan kepada Penyampai).
  • Penyampai (berinteraksi antara Lihat dan Model dan cangkuk mereka bersama-sama)

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

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

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

MVP mungkin corak kompleks untuk dilaksanakan untuk penyelesaian yang lebih maju tetapi tentunya mempunyai manfaat yang besar jika dilaksanakan sebagai penyelesaian yang direka dengan baik, walaupun itu tidak semestinya pilihan yang sesuai untuk penyelesaian mudah.

Corak MVVM

Model-View-ViewModel (MVVM)

The MVVM corak telah direka khusus untuk platform Windows Presentation Foundation (WPF) dan platform Microsoft Silverlight, dan ia boleh digunakan pada semua XAML [i] platform.

WPF adalah sistem Microsoft yang menghasilkan antara muka pengguna dalam program berasaskan Windows dan mula-mula dikeluarkan dalam .NET Framework 3.0.

MVVM telah diperhalusi dari MVC dan dalam corak ini, Lihat aktif dengan tingkah laku, peristiwa, dan mengikat data, dan Lihat menyegerakkan dengan ViewModel (yang membolehkan pemisahan persembahan 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 itu bertanggungjawab untuk menentukan struktur, susun atur, dan kemunculan pengguna yang dilihat pada skrin. Sebaik-baiknya, pandangan itu ditakrifkan semata-mata dengan XAML, dengan kod belakang yang terhad yang tidak mengandungi logik perniagaan. mengikat antara Lihat dan ViewModel untuk paparan yang menyegerakkan Model dan ViewModel dengan Paparan)
  • ViewModel (memisahkan View dari Model, dan mendedahkan kaedah dan perintah untuk memanipulasi data (Model).

The Lihat menerima data daripada ViewModel (melalui data-mengikat dan kaedah), dan semasa runtime, Lihat akan berubah ketika menanggapi peristiwa di dalam ViewModel.

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

Komponen-komponen ini semua dipadam dari satu sama lain yang membolehkan fleksibiliti yang lebih baik untuk bekerja dengannya secara berasingan, mengasingkan ujian unit, dan menukarnya, tanpa menjejaskan komponen lain.

Struktur ini membenarkan Model dan komponen lain untuk berkembang secara bebas, yang membolehkan pemaju bekerja pada pelbagai aspek penyelesaian secara serentak. Contohnya, di mana pereka bekerja pada Lihat, mereka hanya menghasilkan sampel data tanpa memerlukan akses kepada komponen lain. Ini memudahkan reka bentuk semula antara muka pengguna dengan mudah Lihat dilaksanakan di XAML.

Seperti yang dinyatakan sebelum ini MVP, penyelesaian mudah tidak memerlukan corak seni bina dan reka bentuk, seperti "Hello World!" terlalu asas untuk mengikuti sebarang corak; Walau bagaimanapun, apabila lebih banyak ciri, fungsi, dan komponen diperkenalkan, kerumitan aplikasi meningkat dan begitu juga jumlah kod yang perlu diuruskan.

Dalam Ringkasan

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

Perbezaan gambar antara MVP dan MVVM Corak:

  • Dalam kedua-duanya MVP dan MVVM, yang Lihat adalah titik masuk kepada permohonan
  • In MVP, terdapat pemetaan satu sama satu antara Lihat dan Penyampai, di mana MVVM, hubungan itu satu-ke-banyak antara Lihat dan ViewModel.
  • MVP digunakan terutamanya untuk aplikasi Windows Forms dan Windows Phone dan MVVM direka untuk Silverlight, WPF, Knockout / AngularJS, dan lain-lain.