MVVM - Tanggung Jawab
Pola MVVM terdiri dari tiga bagian - Model, View, dan ViewModel. Sebagian besar pengembang pada awalnya sedikit bingung tentang apa yang harus atau tidak boleh dimuat oleh Model, View, dan ViewModel dan apa tanggung jawab masing-masing bagian.
Dalam bab ini kita akan mempelajari tanggung jawab setiap bagian dari pola MVVM sehingga Anda dapat memahami dengan jelas jenis kode yang digunakan. MVVM sebenarnya adalah arsitektur berlapis untuk sisi klien seperti yang ditunjukkan pada gambar berikut.
Lapisan presentasi terdiri dari tampilan.
Lapisan logis adalah model tampilan.
Lapisan presentasi adalah kombinasi dari objek model.
Layanan klien yang menghasilkan dan mempertahankannya baik akses langsung dalam aplikasi dua tingkat atau melalui panggilan layanan masuk dan kemudian ke aplikasi Anda.
Layanan klien tidak secara resmi menjadi bagian dari pola MVVM tetapi sering digunakan dengan MVVM untuk mencapai pemisahan lebih lanjut dan menghindari kode duplikat.
Model Tanggung Jawab
Secara umum, model adalah yang paling sederhana untuk dipahami. Ini adalah model data sisi klien yang mendukung tampilan dalam aplikasi.
Ini terdiri dari objek dengan properti dan beberapa variabel untuk memuat data dalam memori.
Beberapa properti tersebut dapat mereferensikan objek model lain dan membuat grafik objek yang secara keseluruhan merupakan objek model.
Objek model harus memunculkan pemberitahuan perubahan properti yang dalam WPF berarti pengikatan data.
Tanggung jawab terakhir adalah validasi yang bersifat opsional, tetapi Anda dapat menyematkan informasi validasi pada objek model dengan menggunakan fitur validasi pengikatan data WPF melalui antarmuka seperti INotifyDataErrorInfo / IDataErrorInfo
Lihat Tanggung Jawab
Tujuan dan tanggung jawab utama tampilan adalah untuk menentukan struktur dari apa yang dilihat pengguna di layar. Strukturnya dapat berisi bagian statis dan dinamis.
Bagian statis adalah hierarki XAML yang mendefinisikan kontrol dan tata letak kontrol yang terdiri dari tampilan.
Bagian dinamis seperti animasi atau perubahan status yang ditentukan sebagai bagian dari Tampilan.
Tujuan utama MVVM adalah tidak boleh ada kode di belakang dalam tampilan.
Tidak mungkin tidak ada kode yang terlihat. Dalam pandangan Anda setidaknya membutuhkan konstruktor dan panggilan untuk menginisialisasi komponen.
Idenya adalah bahwa penanganan peristiwa, tindakan, dan kode logika manipulasi data tidak boleh berada dalam kode di belakang dalam View.
Ada juga jenis kode lain yang harus dimasukkan ke dalam kode di belakang kode apa pun yang diperlukan untuk memiliki referensi ke elemen UI secara inheren adalah kode tampilan.
Tanggung Jawab ViewModel
ViewModel adalah poin utama dari aplikasi MVVM. Tanggung jawab utama ViewModel adalah menyediakan data ke tampilan, sehingga tampilan dapat meletakkan data tersebut di layar.
Ini juga memungkinkan pengguna untuk berinteraksi dengan data dan mengubah data.
Tanggung jawab utama lainnya dari ViewModel adalah merangkum logika interaksi untuk sebuah tampilan, tetapi ini tidak berarti bahwa semua logika aplikasi harus masuk ke ViewModel.
Ini harus dapat menangani urutan panggilan yang sesuai untuk membuat hal yang benar terjadi berdasarkan pengguna atau perubahan apa pun pada tampilan.
ViewModel juga harus mengelola logika navigasi apa pun seperti memutuskan kapan saatnya menavigasi ke tampilan yang berbeda.