Perbezaan antara MVVM dan MVP Perbezaan Antara

Anonim

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 tahap perancangan dan reka bentuk. Proses reka bentuk perisian boleh menjadi spesifikasi berdasarkan teknologi alat yang disukai, dan dapat merangkumi semua aktivitas dari konsep - ke - perancangan - ke - pelaksanaan - ke - pembaruan 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

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

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

Reka bentuk seni bina agak berbeza dengan corak reka bentuk kerana ruang lingkupnya 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 mengubah daripada senibina 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 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 corak seni bina.

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

Jadi, dengan corak MVC, aplikasi web terdiri daripada

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

Model mengendalikan data dan logik perniagaan dan terdapat ketergantungan tidak antara Model dan atau Lihat . Paparan Lihat

menyajikan data kepada pengguna dalam format yang disokong dan susun atur yang diperlukan, dan apabila Pengawal menerima permintaan pengguna (untuk mengambil data) untuk melengkapkan permintaan. Biarkan 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 pada kategori SCI-FI, semua buku berkaitan harus dipaparkan seperti yang tersedia.

The

Controllers

mengendalikan tindakan yang menguruskan buku-buku (senarai, tambah, paparan, dll). Terdapat banyak Controller dengan satu utama Pengawal 'mengarahkan lalu lintas'. Untuk contoh ini, Pengawal

dinamakan controller_books. php dan Model (e. g. model_books php) mengendalikan data dan logik yang berkaitan dengan buku. Terakhir, berbeza Views

akan diperlukan, seperti ketika menambah buku ke dalam troli online atau saat melihat detail buku dengan gambar dan ulasan. The controller_books. php

menerima tindakan (permintaan pengguna) dari utama Pengawal (e.gg index php). The controller_books. php menganalisis permintaan dan memanggil model_books. php (data) untuk mengembalikan senarai buku SCI-FI. Tanggungjawab Model

adalah untuk memberikan maklumat itu, menggunakan sebarang logik yang digunakan (menggunakan penapis carian). Pengawal kemudian mengambil maklumat tersebut dan lulusnya ke Lihat yang berkaitan (lihat carian, cetakan cetak, paparan terperinci dll) dan maklumat dibentangkan (melalui Lihat >) kepada pengguna yang memulakan permintaan tersebut. Ini adalah asas-asas corak MVC, yang telah mengubah corak pemodelan corak pemula, seperti Model-View-Presenter (MVP), Model-View-ViewModel (MVVM), Hierarchical-Model-View-Controller (HMVC), dan Model-View-Adapter (MVA), dan sebagainya. MVP Pattern Model-View-Presenter (MVP)

adalah variasi MVC. Ia direka khusus untuk automasi ujian di mana objektifnya adalah untuk meningkatkan jumlah kod yang boleh diuji melalui automasi, dan pola 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

merangkumi komponen berikut dengan tanggungjawab berasingan: Model (mentakrifkan data yang akan dipaparkan)

Lihat

(memaparkan data dari Model dan laluan permintaan pengguna ke Penyampai). Penyampaian

  • (berinteraksi antara Lihat dan Model dan cangkuk mereka bersama-sama) Paparan
  • Lihat (laman web) memaparkan dan menguruskan kawalan halaman dengan meneruskan acara (permintaan pengguna)
  • Presenter yang dimulakan di

Lihat . Presenter merespon peristiwa ini dengan membaca dan mengemas kini Model untuk menukar

Lihat dan oleh itu, tanggungjawab Presenter untuk mengikat Model dan Lihat . Setelah melihat corak MVC dan MVP , kesamaan kedua-duanya mempunyai tanggungjawab berasingan untuk setiap komponen dan mereka mempromosikan pemisahan antara

Lihat (UI) dan Model (data). Perbezaan penting antara corak ini lebih jelas dalam bagaimana corak dilaksanakan. MVP mungkin merupakan corak yang kompleks untuk dilaksanakan untuk penyelesaian lanjutan tetapi tentunya mempunyai manfaat besar jika dilaksanakan sebagai penyelesaian yang direka dengan baik, walaupun itu tidak semestinya pilihan yang sesuai untuk penyelesaian mudah. MVVM Model-View-ViewModel (MVVM)

MVVM corak

direka khusus untuk platform Windows Presentation Foundation (WPF) digunakan pada semua platform

XAML [i]

. WPF adalah sistem Microsoft yang menjadikan antaramuka pengguna dalam program berasaskan Windows dan mula-mula dikeluarkan dalam Rangka Kerja NET 3. 0. MVVM telah disempurnakan dari MVC dan dalam corak ini, Lihat

aktif dengan tingkah laku, peristiwa dan mengikat data, dan Lihat disegerakkan dengan ViewModel (yang membolehkan pemisahan persembahan dan mendedahkan kaedah dan perintah untuk mengurus dan memanipulasi Model . MVVM terdiri daripada tiga komponen teras: Model (mewakili data dengan pengesahan dan logik perniagaan) Lihat > (Pandangan ini bertanggungjawab untuk menentukan struktur, susun atur, dan penampilan pengguna yang dilihat pada skrin. Sebaik-baiknya, pandangan itu ditakrifkan semata-mata dengan XAML, dengan kod belakang yang terhad yang tidak mengandungi logik perniagaan. -Binding antara

Lihat dan

  • ViewModel ke paparan yang boleh diselaraskan menyegerakkan Model dan ViewModel dengan Paparan)
  • ViewModel (memisahkan View dari th e Model, dan mendedahkan kaedah dan arahan untuk memanipulasi data (Model). Lihat menerima data dari ViewModel
  • (melalui data-mengikat dan kaedah), dan pada masa runtime, Lihat

akan berubah ketika merespon peristiwa yang ViewModel . ViewModel mengantara antara Lihat dan Model

dan mengendalikan logik Lihat . Ia berinteraksi dengan Model - mengambil data dari Model dan menyampaikannya kepada Lihat untuk dipaparkan. Komponen ini semua dipadam dari satu sama lain yang membolehkan kelonggaran yang lebih besar untuk mengusahakannya 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. Sebagai contoh, 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 seperti

Lihat

dilaksanakan di XAML. Seperti disebutkan sebelumnya dengan MVP , penyelesaian mudah tidak memerlukan corak arsitektur 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 lebih mudah. Perbezaan Illustrated antara Corak MVP dan MVVM:

Di kedua MVP dan

MVVM

Lihat

  • adalah titik masuk ke aplikasi > Dalam MVP , terdapat satu-satu peta antara Lihat dan Presenter , di mana
  • MVVM -yang banyak di antara Lihat dan ViewModel . MVP digunakan terutamanya untuk aplikasi Windows Forms dan Windows Phone dan MVVM direka untuk Silverlight, WPF, Knockout / AngularJS, dll