Sebuah situs web lebih dari apa yang terlihat di luar. Faktanya, pola struktural dari suatu situs web bervariasi sama seperti situs web itu sendiri. Situs web adalah web kompleks dengan banyak komponen yang saling berinteraksi untuk menjalankan aplikasi. Ambil Facebook sebagai contoh, yang merupakan salah satu situs web paling kompleks yang kami gunakan hampir setiap hari. Buka halaman beranda dan Anda akan melihat situs web menangani hampir selusin permintaan data sekaligus untuk mengisi halaman dengan sejumlah komponen. Orang dapat dengan mudah membayangkan bahwa logika di balik bagaimana komponen berinteraksi satu sama lain untuk menjalankan program seperti Facebook bisa sangat berbeda dari situs web lain. Fungsionalitas inti dari situs web apa pun ditentukan oleh kemudahan di mana ujung depan berinteraksi dengan model yang sesuai untuk mendapatkan data yang dicari pemirsa. MVC dan MVVM adalah dua pola desain yang populer di dunia pengembangan perangkat lunak.
MVC, kependekan dari Model-View-Controller, adalah model desain aplikasi yang biasa digunakan untuk mengembangkan antarmuka pengguna modern. Pola MVC adalah jantung dari pengembangan perangkat lunak berorientasi objek modern karena muncul dari komunitas desain berorientasi objek. Awalnya bernama Thing-Model-View-Editor pada tahun 1979, tetapi kemudian disederhanakan dan berganti nama menjadi Model-View-Controller. Ini terutama digunakan untuk desain dan pengembangan aplikasi mobile dan web. Ini membagi antarmuka pengguna aplikasi menjadi tiga bagian yang berbeda: Model, View dan Controller.
Model: Model mewakili sekumpulan kelas yang menggambarkan data yang Anda rencanakan untuk digunakan dalam aplikasi. Ini menjelaskan format umum untuk data tetapi juga dapat berisi aturan bisnis, konversi, logika validasi, dan berbagai fungsi lainnya.
Melihat: Tampilan mewakili data yang akan ditampilkan dari model. Ini mendefinisikan bagaimana antarmuka pengguna aplikasi akan ditampilkan. Model dapat memiliki sejumlah tampilan tergantung pada aplikasi. Model tampilan, dalam hal desain, pada dasarnya menggambarkan komponen UI seperti HTML, jQuery, dan sebagainya.
Pengendali: Pengontrol adalah bagian utama dari aplikasi MVC yang menangani komunikasi dari pengguna dalam bentuk peristiwa, alur aplikasi keseluruhan dan logika khusus aplikasi. Peristiwa kemudian dikonversi ke permintaan layanan dan diteruskan ke model atau tampilan. Ini adalah satu-satunya komponen di mana pengguna berinteraksi dengan sistem.
Model-View-ViewModel, atau MVVM, adalah pola arsitektur perangkat lunak populer yang biasa digunakan untuk mengembangkan aplikasi web yang dapat digunakan kembali dan mudah diuji. MVVM didasarkan pada pola MVC tetapi meningkatkan model MVC dengan memperkenalkan kelas baru yang disebut ViewModel, yang mengelola data khusus untuk tampilan. Tujuan inti dari model MVVM adalah untuk memiliki pemisahan sejati antara Model dan komponen View. Komponen utama dari model adalah: Model, View dan ViewModel.
Model: Prinsipnya tetap sama seperti pada model MVC. Model mewakili logika dan data bisnis dan menentukan bagaimana data harus dimanipulasi.
Melihat: Model View mewakili data yang akan ditampilkan tetapi tidak melakukan manipulasi data apa pun. Tampilan sama dengan di MVC, kecuali binding data harus diatur untuk tampilan, yang dilakukan dengan menambahkan ViewModel ke tampilan.
ViewModel: Ini adalah komponen paling penting dari model karena dirancang untuk memanfaatkan fungsi pengikatan data, yang pada kenyataannya, membantu menjaga pandangan terpisah dari model, dan pada saat yang sama, bertindak sebagai pengontrol untuk memfasilitasi komunikasi antara komponen Lihat dan Model.
- Model-View-Controller (MVC) adalah model desain aplikasi yang biasa digunakan untuk mengembangkan antarmuka pengguna modern. Ini membagi antarmuka pengguna aplikasi menjadi tiga bagian yang berbeda: Model, View dan Controller. Model-View-ViewModel (MVVM), di sisi lain, adalah varian modern dari model MVC yang biasa digunakan untuk mengembangkan aplikasi web yang dapat digunakan kembali dan mudah diuji. Komponen utama model MVVM adalah Model, View, dan ViewModel.
- Fitur utama yang membedakan MVVM dari pola desain perangkat lunak lain adalah pengikatan data, yang hanya merupakan mekanisme yang menghubungkan antarmuka pengguna dengan logika bisnis. Ini adalah teknologi utama yang menghubungkan Views dengan ViewModels mereka yang memastikan model dan properti sinkron dengan tampilan di ViewModel. Ini menghilangkan kebutuhan untuk mengekspos seluruh Model ke Tampilan.
- Perbedaan utama antara kedua pola arsitektur adalah bahwa dalam MVC, Pengendali bertanggung jawab untuk mengelola komunikasi antara Model dan Tampilan menggunakan peristiwa, sedangkan kerangka kerja melakukan semua pengangkatan berat dalam MVVM menggunakan fitur yang disebut pengikatan data. ViewModel di MVVM membantu menjaga tampilan terpisah dari model, dan pada saat yang sama, bertindak sebagai pengontrol untuk memfasilitasi komunikasi antara komponen Lihat dan Model.
Sementara MVC dan MVVM adalah turunan dari model MVC, MVVM adalah varian modern dari model MVC yang memperkenalkan kelas baru yang disebut ViewModel, yang mengelola data khusus untuk tampilan. Tujuan inti dari model MVVM adalah untuk memiliki pemisahan sejati antara Model dan komponen View. Dalam MVC, Pengendali bertanggung jawab untuk mengelola komunikasi antara Model dan Tampilan. Namun, dalam MVVM, ViewModel membantu menjaga tampilan terpisah dari model dan juga bertindak sebagai pengontrol untuk memfasilitasi komunikasi antara komponen.