Wonderlabs Blog

Pola Desain MVC, MVP dan MVVM

Posted by Dianty Anggraini Putri on Aug 8, 2017 8:31:59 AM

Pola Desain MVC, MVP dan MVVM

MVC, MVP, dan MVVM adalah tiga pola desain populer dalam pengembangan perangkat lunak. Mari kita lihat Model View Controller (MVC), Model View Presenter (MVP) dan Model View View-model (MVVM) secara satu per satu. Semua pola desain MVC, MVP dan MVVM ini sangat membantu dalam mengembangkan aplikasi yang digabungkan, mudah untuk diuji dan dipantau. Semua diskusi tentang pola dibuat dalam konteks Android sebagai platform.

 

Model View Controller (MVC)

Pola Desain MVC

Pola desain MVC membagi aplikasi menjadi tiga aspek utama: Model, View, dan Controller.

  • Model

Model berarti data yang dibutuhkan untuk ditampilkan dalam tampilan. Model merupakan koleksi kelas yang menggambarkan logika bisnis (model bisnis dan model data). Ini juga mendefinisikan aturan bisnis untuk data yang berarti bagaimana data bisa diubah dan dimanipulasi.

  • View

View mewakili komponen UI seperti XML, HTML dll. Tampilan menampilkan data yang diterima dari pengontrol sebagai hasilnya. Dalam pola MVC View memonitor model untuk perubahan keadaan dan menampilkan model yang diperbarui. Model dan View berinteraksi satu sama lain dengan menggunakan pola Observer.

  • Controller

Controller bertanggung jawab untuk memproses permintaan yang masuk. Ini memproses data pengguna melalui Model dan mengembalikan hasilnya ke View. Ini biasanya bertindak sebagai mediator antara View dan Model.

 

Model View Presenter (MVP)

Pola Desain MVP

Pola MVP mirip dengan pola MVC. Ini berasal dari pola MVC, dimana controller diganti oleh presenter. Pola ini membagi aplikasi menjadi tiga aspek utama: Model, View, dan Presenter.

  • Model

Model mewakili seperangkat kelas yang menggambarkan logika bisnis dan data. Ini juga mendefinisikan aturan bisnis untuk data yang berarti bagaimana data bisa diubah dan dimanipulasi.

  • View

View adalah komponen yang berinteraksi langsung dengan pengguna seperti XML, Activity, fragmen. Ini tidak mengandung logika yang diimplementasikan.

  • Presenter

Presenter menerima input dari pengguna melalui View, kemudian memproses data pengguna dengan bantuan Model dan mengembalikan hasilnya kembali ke View. Presenter berkomunikasi dengan melihat melalui interface. Interface didefinisikan di kelas presenter, yang melewati data yang dibutuhkan. Aktivitas / fragmen atau komponen tampilan lainnya menerapkan interface ini dan membuat data sesuai dengan keinginan mereka.

Dalam pola desain MVP, presenter memanipulasi model dan juga memperbarui tampilan. Dalam MVP View dan Presenter benar-benar dipisahkan satu sama lain dan berkomunikasi satu sama lain oleh sebuah interface.

 

Model View View-model (MVVM)

Pola Desain MVVM

Pola MVVM mendukung data dua arah yang mengikat antara View and View-Model. Ini memungkinkan perbanyakan perubahan secara otomatis, di dalam keadaan View-Model ke View. Umumnya, View-Model menggunakan pola pengamat untuk menginformasikan perubahan dalam Model-View pada Model.

 

View-Model

View-Model bertanggung jawab untuk mengekspos metode, perintah, dan sifat lainnya yang membantu mempertahankan keadaan tampilan, memanipulasi model sebagai hasil tindakan pada tampilan, dan aktivitas dalam tampilan itu sendiri. View memiliki referensi ke View-Model tapi View-Model tidak memiliki informasi tentang View. Ada hubungan banyak diantara View and View-Model berarti banyak Tampilan dapat dipetakan ke satu Model Tampilan. Ini benar-benar tidak tergantung pada Tampilan.

Data bi-directional yang mengikat atau data dua arah yang mengikat antara tampilan dan Model Tampilan memastikan bahwa model dan properti dalam Model View disinkronkan dengan tampilan. Pola desain MVVM sangat sesuai pada aplikasi yang membutuhkan dukungan untuk pengikatan data bi-directional.

 

inspired by: https://medium.com

images source: Medium

Topics: Technology