MVC, MVP, MVVM: Mana Satu untuk Dipilih?

MVC, MVP, MVVM: Mana Satu untuk Dipilih?

Aplikasi moden memerlukan pelbagai ciri sehingga proses membangunkannya telah berkembang dari segi saiz dan kerumitan. Untuk membantu, anda boleh menggunakan corak reka bentuk seni bina. Mereka menyokong pembinaan aplikasi yang mudah diuji dan diselenggara.





Tiga corak reka bentuk yang paling popular ialah MVC, MVP dan MVVM. MVC adalah singkatan untuk model, view, dan controller, manakala MVP bermaksud model, view dan presenter, dan MVVM untuk model, view dan view model.





Corak Seni Bina dan Reka Bentuk

Corak Seni Bina

Corak seni bina menjelaskan dan mentakrifkan beberapa komponen penting dalam seni bina perisian. Walaupun corak seni bina menyampaikan imej sistem, ia bukan seni bina . Malah, ia adalah penyelesaian umum dan boleh diguna semula kepada masalah yang biasa berlaku dalam seni bina perisian dalam konteks tertentu.





Corak Rekaan

Corak reka bentuk ialah amalan terbaik rasmi yang boleh anda gunakan untuk menyelesaikan masalah biasa semasa mereka bentuk aplikasi atau sistem.

Perbezaan Antara Corak Seni Bina dan Reka Bentuk

Mari kita mulakan dengan istilah biasa—corak. Dalam perisian, corak ialah sifat berulang yang membolehkan anda memecahkan struktur yang besar dan kompleks kepada komponen yang lebih kecil dan ringkas. Anda boleh menggunakan corak ini untuk mencipta penyelesaian umum untuk kelas masalah.



Dalam setiap peringkat pembangunan perisian, anda akan menggunakan alat yang berbeza. Pada tahap yang lebih kecil, alat ini adalah corak reka bentuk. Corak seni bina wujud pada tahap yang lebih besar, dan paradigma pengaturcaraan di peringkat pelaksanaan.

Mengapa Kita Memerlukan Corak Reka Bentuk Seni Bina?

Semasa pembangunan perisian, anda boleh menggunakan corak reka bentuk seni bina untuk menyelesaikan masalah biasa. Seni bina yang baik juga boleh membantu anda untuk:





  • Pisahkan tugas yang kompleks kepada tugas yang lebih mudah.
  • Kurangkan pepijat.
  • Menghasilkan kod yang boleh diuji dan diselenggara.

Tetapi tanpa corak seni bina, anda mungkin menghadapi kesukaran mengekalkan logik perniagaan apl anda.

Model, View, ViewModel, Pengawal dan Penyampai

Sebelum anda melihat setiap corak, berikut ialah istilah yang membentuknya:





cara mengesan kamera tersembunyi dengan telefon bimbit
  • Model menyimpan data dan berkomunikasi secara langsung dengan pangkalan data. Model ialah bahagian yang mewakili data dan logik aplikasi anda. Ia mentakrifkan peraturan perniagaan yang mengurus pengendalian, pengubahsuaian atau pemprosesan data.
  • Lihat memaparkan data model dan bertanggungjawab untuk perwakilan data dalam antara muka pengguna.
  • ViewModel adalah eksklusif untuk corak MVVM. Ini adalah abstraksi lapisan paparan dan juga bertindak sebagai pembungkus untuk data model.
  • Pengawal ialah komponen yang mengintegrasikan pandangan dan model.
  • Penyampai adalah komponen yang hanya wujud dalam model MVP. Penyampai mendapat input daripada komponen paparan dan memproses data dengan bantuan model.

Corak MVC, MVP dan MVVM

Corak Model-Pandangan-Pengawal

The Corak seni bina MVC adalah yang pertama, dan ia popular hari ini dalam bidang aplikasi web. Ia diperkenalkan pada tahun 1970-an. Corak ini membolehkan anda membina aplikasi di sekitar Separation of Concerns (SoC). Ia memudahkan usaha yang anda perlukan untuk menguji, menyelenggara dan membangunkan aplikasi anda.

Dalam corak MVC, model tidak memahami pandangan atau pengawal. Pemerhati model akan menerima amaran apabila terdapat perubahan dalam paparan dan pengawal. Pengawal membantu proses penghalaan untuk menyambungkan model kepada paparan yang berkaitan.

Beberapa kelebihan corak MVC ialah:

  • Pengasingan kebimbangan (lebih fokus).
  • Memudahkan untuk menguji dan mengurus kod.
  • Menggalakkan penyahgandingan lapisan aplikasi.
  • Organisasi kod yang lebih baik dan kebolehgunaan semula.

Begini cara MVC berfungsi:

  Imej rajah yang menggambarkan cara MVC berfungsi

Disebabkan oleh SoC, MVC boleh mengurangkan saiz kod dan membuat kod yang baik yang bersih dan boleh diurus.

Corak Model-Pandangan-Penyampai

Corak MVP berkongsi dua komponen dengan MVC: model dan pandangan. Ia menggantikan pengawal dengan penyampai. Penyampai—seperti namanya—digunakan untuk mempersembahkan sesuatu. Ia membolehkan anda mengejek pandangan dengan lebih mudah.

Dalam MVP, penyampai mempunyai fungsi 'orang tengah' kerana semua logik pembentangan ditolak kepadanya. Pandangan dan penyampai dalam MVP juga bebas antara satu sama lain dan berinteraksi melalui antara muka.

Berikut ialah ilustrasi cara corak MVP berfungsi:

  Imej rajah yang menggambarkan cara MVP berfungsi

Penyampai menerima input daripada pengguna melalui paparan. Ia kemudian memproses tindakan pengguna dengan bantuan model, menghantar hasil kembali ke paparan. Penyampai berkomunikasi dengan pandangan melalui antara muka.

mengapa sistem saya menggunakan 100 cakera

Corak Model-View-ViewModel

MVVM ialah evolusi moden MVC. Matlamat utama MVVM adalah untuk menyediakan pemisahan yang jelas antara logik domain dan lapisan pembentangan. MVVM menyokong pengikatan data dua hala antara paparan dan model pandangan.

Corak MVVM membolehkan anda memisahkan paparan dan model kod anda. Ini bermakna apabila model menukar pandangan tidak perlu, dan sebaliknya. Menggunakan model pandangan, anda boleh melakukan ujian unit dan menguji tingkah laku logik anda tanpa melibatkan pandangan anda.

Berikut ialah ilustrasi cara MVVM berfungsi:

  Imej rajah yang menggambarkan cara MVVM berfungsi

Bila hendak menggunakan MVC, MVP dan MVVM

Memandangkan anda telah mengetahui tentang setiap corak, ketahui masa untuk menggunakannya.

Bila hendak menggunakan MVC

MVC hanyalah pelaksanaan Pemisahan Kebimbangan. Jika aplikasi anda perlu memisahkan data (model), data crunching (pengawal) dan pembentangan data (view), MVC akan berfungsi dengan baik. MVC juga berfungsi dengan baik dalam aplikasi yang sumber data dan/atau pembentangan data boleh berubah pada bila-bila masa.

bagaimana tidak dapat dilihat di facebook

Bila Menggunakan MVP

Anda boleh menggunakan MVP apabila aplikasi anda mempunyai aliran dwiarah. Jika interaksi pengguna perlu meminta sesuatu daripada model dan hasil permintaan ini akan menukar UI serta-merta, pertimbangkan MVP.

Bila hendak menggunakan MVVM

Anda akan mahu menggunakan MVVM apabila:

  • Anda perlu berkongsi projek dengan pereka bentuk dan kerja reka bentuk dan pembangunan boleh dilakukan secara bebas.
  • Anda memerlukan ujian unit untuk penyelesaian anda.
  • Anda perlu mempunyai komponen yang boleh diguna semula, dalam dan merentas projek dalam organisasi anda.
  • Anda mahukan lebih fleksibiliti untuk menukar pandangan anda tanpa perlu memfaktorkan semula logik lain dalam pangkalan kod.

Corak Mana Yang Perlu Anda Pilih?

Sebab utama untuk menggunakan corak reka bentuk adalah untuk mengurangkan kerumitan. Anda boleh melakukan ini dengan mengurangkan kerumitan keseluruhan atau dengan menggantikan kerumitan yang tidak biasa dengan yang biasa. Jika corak reka bentuk tidak dapat mengurangkan kerumitan dalam salah satu daripada dua cara tersebut, jangan gunakan mana-mana daripadanya; ia tidak akan menambah apa-apa nilai sama sekali.

Jika anda benar-benar pasti bahawa anda harus menggunakan corak reka bentuk, cuba buat senarai semak. Berdasarkan situasi yang anda lihat di sini dan pilih yang paling sesuai untuk projek anda.