Meneroka corak reka bentuk MVC, MVP, dan MVVM

Antara muka pengguna sering mengandungi banyak kod yang berantakan terutamanya kerana logik rumit yang perlu ditangani. Corak persembahan adalah reka bentuk terutamanya dengan satu objektif, mengurangkan kod kompleks dalam lapisan persembahan dan menjadikan kod di antara muka pengguna bersih dan terkawal. Dalam catatan ini, saya akan membentangkan perbincangan mengenai corak reka bentuk MVC, MVP, dan MVVM dan mengetengahkan kapan seseorang harus menjadi reka bentuk pilihan daripada yang lain.

Pengawal Paparan Model

Rangka kerja Model View Controller (biasanya dikenali sebagai MVC) membantu anda membina aplikasi yang lebih mudah untuk diuji dan dikendalikan. Ia terdiri daripada tiga komponen utama, iaitu:

  1. Model - ini adalah lapisan yang mewakili data aplikasi
  2. Lihat - ini mewakili persembahan atau lapisan antara muka pengguna
  3. Pengawal - lapisan ini biasanya mengandungi logik perniagaan aplikasi anda

Objektif utama corak reka bentuk MVC adalah pemisahan kebimbangan untuk memudahkan kebolehujian. Corak reka bentuk Model View Controller membolehkan anda mengasingkan masalah dan menjadikan kod aplikasi anda lebih mudah untuk diuji dan dikendalikan. Dalam reka bentuk MVC khas, permintaan pertama tiba di pengawal yang mengikat model dengan pandangan yang sesuai. Dalam corak reka bentuk MVC, pandangan dan pengawal menggunakan reka bentuk strategi dan pandangan dan model diselaraskan menggunakan reka bentuk pemerhati. Oleh itu, kita mungkin mengatakan bahawa MVC adalah corak kompaun. Pengawal dan pandangan digabungkan secara longgar dan satu pengawal boleh digunakan oleh pelbagai pandangan. Pandangan tersebut sesuai dengan perubahan model.

Penyampai Paparan Model

Corak reka bentuk MVP (Model View Presenter) juga terdiri daripada tiga komponen - model, paparan dan penyampai. Dalam corak reka bentuk MVP, Pengawal (dalam MVC) digantikan oleh Penyampai. Tidak seperti corak reka bentuk MVC, Penyampai merujuk kembali ke pandangan kerana mengejek pandangan lebih mudah dan pengujian unit aplikasi yang memanfaatkan corak reka bentuk MVP berbanding corak reka bentuk MVC jauh lebih mudah. Dalam corak reka bentuk MVP, penyampai memanipulasi model dan juga mengemas kini paparan. Terdapat dua variasi reka bentuk ini. Ini termasuk yang berikut.

  1. Pandangan Pasif - dalam strategi ini, pandangan tidak mengetahui model dan penyampai mengemas kini pandangan untuk mencerminkan perubahan dalam model.
  2. Pengawas Pengawasan - dalam strategi ini, pandangan berinteraksi dengan model secara langsung untuk mengikat data ke kawalan data tanpa campur tangan penyampai. Penyampai bertanggungjawab untuk mengemas kini model. Ini memanipulasi pandangan hanya jika diperlukan - jika anda memerlukan logik antara muka pengguna yang kompleks untuk dijalankan.

Walaupun kedua-dua varian ini mempromosikan kebolehpercayaan logik persembahan, varian pandangan pasif lebih disukai daripada varian lain (pengawas penyeliaan) sejauh mana kebolehpercayaan terutama kerana anda mempunyai semua logik pandangan yang diperbaharui di dalam penyampai.

Corak reka bentuk MVP lebih disukai daripada MVC apabila aplikasi anda perlu memberikan sokongan untuk pelbagai teknologi antara muka pengguna. Ia juga lebih disukai jika anda mempunyai antara muka pengguna yang kompleks dengan banyak interaksi pengguna. Sekiranya anda ingin melakukan ujian unit automatik pada antara muka pengguna aplikasi anda, corak reka bentuk MVP sangat sesuai dan lebih disukai daripada reka bentuk MVC tradisional.

Model - Paparan - ViewModel (MVVM)

Model - View - ViewModel (MVVM) adalah variasi corak reka bentuk Model Persembahan Martin Fowler. MVVM adalah penyempurnaan reka bentuk MVC yang popular dan ViewModel dalam MVVM digunakan untuk memfasilitasi Pemisahan Pembentangan. Dalam MVVM logik disimpan di penyampai dan pandangan sepenuhnya diasingkan dari model. Walaupun penyampai tidak menyedari pandangan, pandangan menyedari penyampai - penyampai di MVVM digunakan untuk mewakili pandangan abstrak antara muka pengguna. Pandangan pasif menyiratkan bahawa pandangan tidak mempunyai pengetahuan tentang model. Dalam corak reka bentuk MVVM, Pandangan aktif dan mengandungi maklumat perilaku, peristiwa dan data yang mengikat. Perhatikan bahawa paparan di MVVM tidak bertanggungjawab untuk menguruskan maklumat keadaan - pandangan agak diselaraskan dengan model pandangan.Model pandang dalam MVVM bertanggungjawab untuk pemisahan persembahan dan mendedahkan kaedah dan arahan untuk mengurus keadaan pandangan dan memanipulasi model.

Bagaimanakah pandangan dan model pandangan dalam MVVM berkomunikasi? Nah, pandangan dan model pandangan dalam MVVM berkomunikasi menggunakan kaedah, sifat dan peristiwa. Pengumpulan data dua arah atau pengumpulan data dua arah antara pandangan dan model pandangan memastikan bahawa model dan sifat dalam model pandang selari dengan pandangan. Corak reka bentuk MVVM sangat sesuai dalam aplikasi yang memerlukan sokongan untuk pengumpulan data dua arah.