Aplikasi modern membutuhkan beragam fitur sehingga proses pengembangannya telah berkembang dalam ukuran dan kompleksitas. Untuk membantu, Anda dapat menggunakan pola desain arsitektur. Mereka mendukung pembuatan aplikasi yang mudah diuji dan dipelihara.
Tiga pola desain yang paling populer adalah MVC, MVP, dan MVVM. MVC adalah singkatan dari model, view, dan controller, sedangkan MVP adalah singkatan dari model, view, dan presenter, dan MVVM untuk model, view, dan view model.
Pola Arsitektur dan Desain
Pola Arsitektur
Pola arsitektur menjelaskan dan mendefinisikan beberapa komponen penting dari arsitektur perangkat lunak. Meskipun pola arsitektur menyampaikan gambar sistem, itu bukan arsitektur. Faktanya, ini adalah solusi umum dan dapat digunakan kembali untuk masalah yang umum terjadi dalam arsitektur perangkat lunak dalam konteks tertentu.
Pola Desain
Pola desain adalah praktik terbaik yang diformalkan yang dapat Anda gunakan untuk memecahkan masalah umum saat mendesain aplikasi atau sistem.
Perbedaan Antara Pola Arsitektur dan Desain
Mari kita mulai dengan istilah umum—pola. Dalam perangkat lunak, pola adalah properti berulang yang memungkinkan Anda memecah struktur besar dan kompleks menjadi komponen yang lebih kecil dan lebih sederhana. Anda dapat menggunakan pola ini untuk menyusun solusi umum untuk kelas masalah.
Di setiap tingkat pengembangan perangkat lunak, Anda akan menggunakan alat yang berbeda. Pada tingkat yang lebih kecil, alat ini adalah pola desain. Pola arsitektur ada di tingkat yang lebih besar, dan paradigma pemrograman pada tingkat implementasi.
Mengapa Kita Membutuhkan Pola Desain Arsitektur?
Selama pengembangan perangkat lunak, Anda dapat menggunakan pola desain arsitektur untuk memecahkan masalah umum. Arsitektur yang baik juga dapat membantu Anda untuk:
- Bagi tugas yang kompleks menjadi tugas yang lebih sederhana.
- Kurangi bug.
- Menghasilkan kode yang dapat diuji dan dipelihara.
Namun tanpa pola arsitektur, Anda mungkin menghadapi kesulitan dalam mempertahankan logika bisnis aplikasi Anda.
Model, View, ViewModel, Controller, dan Presenter
Sebelum Anda melihat setiap pola, berikut adalah istilah yang membentuknya:
- Model menyimpan data dan berkomunikasi langsung dengan database. Model adalah bagian yang mewakili data dan logika aplikasi Anda. Ini mendefinisikan aturan bisnis yang mengelola penanganan, modifikasi, atau pemrosesan data.
- Melihat menampilkan data model dan bertanggung jawab atas representasi data di antarmuka pengguna.
- LihatModel eksklusif untuk pola MVVM. Ini adalah abstraksi dari lapisan tampilan dan juga bertindak sebagai pembungkus untuk data model.
- Pengontrol adalah komponen yang mengintegrasikan tampilan dan model.
- Pembawa acara merupakan komponen yang hanya ada pada model MVP. Presenter mendapatkan input dari komponen view dan memproses data dengan bantuan model.
Pola MVC, MVP, dan MVVM
Pola Model-View-Controller
Itu Pola arsitektur MVC adalah yang pertama, dan populer saat ini di bidang aplikasi web. Itu diperkenalkan pada 1970-an. Pola ini memungkinkan Anda membangun aplikasi seputar Separation of Concerns (SoC). Ini memudahkan upaya yang Anda butuhkan untuk menguji, memelihara, dan mengembangkan aplikasi Anda.
Dalam pola MVC, model tidak memiliki pemahaman tentang tampilan atau pengontrol. Pengamat model akan menerima peringatan setiap kali ada perubahan pada tampilan dan pengontrol. Kontroler membantu proses perutean untuk menghubungkan model ke tampilan yang relevan.
Beberapa keunggulan pola MVC adalah:
- Pemisahan kekhawatiran (lebih terfokus).
- Mempermudah pengujian dan pengelolaan kode.
- Mempromosikan decoupling lapisan aplikasi.
- Organisasi kode yang lebih baik dan dapat digunakan kembali.
Berikut cara kerja MVC:
Karena SoC, MVC dapat mengurangi ukuran kode dan membuat kode bagus yang bersih dan mudah dikelola.
Pola Model-View-Presenter
Pola MVP berbagi dua komponen dengan MVC: model dan tampilan. Ini menggantikan pengontrol dengan presenter. Presenter—sesuai namanya—digunakan untuk menyajikan sesuatu. Ini memungkinkan Anda untuk mengejek tampilan dengan lebih mudah.
Di MVP, presenter memiliki fungsi "perantara" karena semua logika presentasi didorong ke sana. Tampilan dan presenter di MVP juga independen satu sama lain dan berinteraksi melalui antarmuka.
Berikut ilustrasi cara kerja pola MVP:
Presenter menerima masukan dari pengguna melalui tampilan. Kemudian memproses tindakan pengguna dengan bantuan model, meneruskan hasilnya kembali ke tampilan. Presenter berkomunikasi dengan tampilan melalui antarmuka.
Model-View-ViewModel Pattern
MVVM adalah evolusi modern dari MVC. Tujuan utama dari MVVM adalah untuk memberikan pemisahan yang jelas antara logika domain dan lapisan presentasi. MVVM mendukung pengikatan data dua arah antara tampilan dan model tampilan.
Pola MVVM memungkinkan Anda untuk memisahkan tampilan dan model kode Anda. Artinya ketika model mengubah tampilan tidak perlu, dan sebaliknya. Dengan menggunakan model tampilan, Anda dapat melakukan pengujian unit dan menguji perilaku logika Anda tanpa melibatkan tampilan Anda.
Berikut ilustrasi cara kerja MVVM:
Kapan Menggunakan MVC, MVP, dan MVVM
Sekarang setelah Anda mempelajari setiap pola, cari tahu kapan harus menggunakannya.
Kapan Menggunakan MVC
MVC hanyalah sebuah implementasi dari Separation of Concerns. Jika aplikasi Anda perlu memisahkan data (model), pemrosesan data (pengontrol), dan penyajian data (tampilan), MVC akan berfungsi dengan baik. MVC juga berfungsi dengan baik dalam aplikasi di mana sumber data dan/atau penyajian data dapat berubah sewaktu-waktu.
Kapan Menggunakan MVP
Anda dapat menggunakan MVP saat aplikasi Anda memiliki aliran dua arah. Jika interaksi pengguna perlu meminta sesuatu dari model, dan hasil dari permintaan ini akan segera mengubah UI, pertimbangkan MVP.
Kapan Menggunakan MVVM
Anda ingin menggunakan MVVM ketika:
- Anda perlu berbagi proyek dengan seorang desainer dan pekerjaan desain dan pengembangan dapat terjadi secara mandiri.
- Anda memerlukan pengujian unit untuk solusi Anda.
- Anda harus memiliki komponen yang dapat digunakan kembali, baik di dalam maupun di seluruh proyek di organisasi Anda.
- Anda ingin lebih banyak fleksibilitas untuk mengubah pandangan Anda tanpa harus memperbaiki logika lain di basis kode.
Pola Mana yang Harus Anda Pilih?
Alasan utama untuk menggunakan pola desain adalah untuk mengurangi kompleksitas. Anda dapat melakukan ini dengan mengurangi kompleksitas keseluruhan atau dengan mengganti kompleksitas yang tidak familiar dengan yang familiar. Jika pola desain tidak dapat mengurangi kompleksitas dengan salah satu dari dua cara tersebut, jangan gunakan salah satu dari itu; itu tidak akan menambah nilai apa pun.
Jika Anda benar-benar yakin harus menggunakan pola desain, coba buat daftar periksa. Dasarkan pada situasi yang Anda lihat di sini dan pilih yang paling cocok untuk proyek Anda.