Pada dasarnya Model dan Model Tampilan adalah kelas sederhana dengan atribut.
Tujuan utama dari kelas-kelas ini adalah untuk mendeskripsikan (untuk "Model") sebuah objek untuk audiens masing-masing yang masing-masing adalah pengontrol dan tampilan.
Jadi, Anda benar saat mengatakannya
Menurut pemahaman saya, ini adalah sejenis Model yang memiliki tujuan khusus untuk berinteraksi dengan View
Jadi, sementara kelas Model secara efektif adalah Entitas Domain yang berinteraksi dengan aplikasi Anda, Model Tampilan adalah kelas sederhana tempat tampilan Anda berinteraksi.
Semoga membantu :)
Pembaruan :
Microsoft telah mengembangkan versi khusus dari Pola Presentasi oleh Martin fowler yang sebagian besar didasarkan pada Model-View-Controller dan menyebutnya Model-View-ViewModel (MVVM) untuk aplikasi PF. Pola ini ditargetkan pada platform pengembangan UI modern di mana pengembang UI memiliki persyaratan berbeda yang lebih didasarkan pada logika bisnis daripada pengembang tradisional. Lihat di sini untuk sedikit teori
Dalam istilah yang paling sederhana, saya suka memikirkan yang berikut:
Model: Secara ketat terlihat dan terasa seperti model data Anda. Untuk semua maksud dan tujuan, ini hanya representasi kelas dari model data Anda. Itu tidak memiliki pengetahuan tentang Tampilan Anda atau elemen apa pun dalam Tampilan Anda. Namun, itu tidak boleh berisi dekorator atribut apa pun (yaitu; Diperlukan, Panjang, dll.) Yang akan Anda gunakan untuk Tampilan Anda.
Model Tampilan: Berfungsi sebagai pengikat data antara Tampilan dan Model Anda dan dalam banyak kasus, juga merupakan pembungkus untuk Model Anda. Ini akan dianggap tidak berguna tanpa View, jadi biasanya tidak dapat digunakan kembali di beberapa View dan Controllers seperti Model standar.
Sebagai contoh, Model Anda mungkin memiliki properti berikut, yang merupakan representasi langsung dari sumber data Anda:
Sekarang, karena Model Tampilan Anda terkait dengan Tampilan Anda, mungkin memiliki properti berikut - yang menggabungkan bidang NamaDepan Model dan bidang NamaBelakang bersama sebagai satu string:
sumber
Saya menemukan artikel ini sebagai sumber yang sangat berguna untuk memahami bagaimana "Model Domain" dan "Model Tampilan" berinteraksi dalam aplikasi MVC, terutama dalam hal pengikatan. Yang terbaik dari semuanya termasuk contoh, bukan deskripsi abstrak.
"Sejak MVC dirilis, saya telah mengamati banyak kebingungan tentang cara terbaik untuk membuat model tampilan. Terkadang kebingungan ini bukan tanpa alasan yang baik karena tampaknya tidak ada banyak informasi di luar sana tentang rekomendasi praktik terbaik. Selain itu, tidak ada solusi "satu ukuran cocok untuk semua" yang bertindak sebagai peluru perak. Dalam posting ini, saya akan menjelaskan beberapa pola utama yang muncul dan pro / kontra masing-masing. Penting untuk dicatat bahwa banyak dari pola ini telah muncul dari orang-orang yang memecahkan masalah dunia nyata. "
http://geekswithblogs.net/michelotti/archive/2009/10/25/asp.net-mvc-view-model-patterns.aspx
sumber
WikiPedia memiliki deskripsi Model vs. ModelView yang lebih lengkap daripada yang akan Anda dapatkan dalam jawaban SO: http://en.wikipedia.org/wiki/Model_View_ViewModel
Saya mengutip:
Model : seperti dalam pola MVC klasik, model mengacu pada (a) model objek yang mewakili konten keadaan nyata (pendekatan berorientasi objek), atau (b) lapisan akses data yang mewakili konten tersebut (data- pendekatan sentris).
Tampilan : seperti pada pola MVC klasik, tampilan mengacu pada semua elemen yang ditampilkan oleh GUI seperti tombol, jendela, grafik, dan kontrol lainnya.
ViewModel : ViewModel adalah "Model Tampilan" yang berarti merupakan abstraksi dari Tampilan yang juga berfungsi dalam pengikatan data antara Tampilan dan Model. Ini bisa dilihat sebagai aspek khusus dari apa yang akan menjadi Pengontrol (dalam pola MVC) yang bertindak sebagai pengikat / konverter data yang mengubah informasi Model menjadi informasi Tampilan dan meneruskan perintah dari Tampilan ke Model. ViewModel memperlihatkan properti publik, perintah, dan abstraksi. ViewModel telah diibaratkan sebagai status konseptual data sebagai lawan dari status sebenarnya dari data dalam Model.
sumber
Ada gagasan tentang ViewModel, tetapi umumnya tidak terkait dengan Asp.net MVC. MVC menggunakan pola Pengontrol Tampilan Model, tempat pengontrol menangani interaksi, menyusun data dari Model, lalu meneruskan data tersebut ke Tampilan untuk ditampilkan.
ViewModels (dan pola Model View ViewModel) lebih umum dikaitkan dengan Silverlight dan WPF. Xaml sedikit berbeda karena tampilan dapat melakukan pengikatan dua arah ke ViewModels, jadi teknologinya sedikit berbeda. Misalnya, jika Anda mengikat kotak teks ke bidang, saat Anda mengetik ke kotak teks itu, nilai bidang diperbarui secara dinamis. Interaksi semacam ini tidak mungkin dilakukan di halaman web karena halaman web tidak memiliki kewarganegaraan.
Kesamaan dalam dua pola tersebut adalah bahwa keduanya mencoba untuk memisahkan logika dari tampilan. Penggunaan / alasan paling umum untuk ini adalah pengujian: Anda ingin dapat melakukan dari kode (melalui kerangka pengujian) semua interaksi yang akan dipanggil oleh pengguna melalui Antarmuka Pengguna.
sumber