"Hai, Amigo!"

"Hai, Bilaabo!"

"Kamu sudah menjadi programmer yang solid. Jadi, hari ini kita akan belajar tentang MVC."

"MVC adalah singkatan dari ModelViewController . Ini adalah pola desain arsitektur untuk aplikasi besar, di mana aplikasi dibagi menjadi tiga bagian."

"Bagian pertama berisi semua logika bisnis aplikasi . Bagian ini disebut model . Bagian ini berisi kode yang melakukan semua hal yang harus dilakukan oleh aplikasi. Bagian ini paling tidak bergantung pada yang lain."

"Bagian kedua berisi semua yang berkaitan dengan menampilkan data ke pengguna . Bagian ini disebut tampilan . Ini berisi kode yang mengontrol tampilan jendela, halaman, pesan, dll."

"Bagian ketiga berisi kode yang memproses tindakan pengguna . Setiap tindakan pengguna yang dimaksudkan untuk mengubah model harus ditangani di sini. Bagian ini disebut Pengontrol   . "

"Pendekatan ini memungkinkan Anda membuat tiga hal secara mandiri:  logika program (model) , mekanisme untuk menampilkan data program kepada pengguna (tampilan) , dan penangan untuk input/tindakan pengguna (pengontrol) ."

"Aplikasi sering kali memiliki beberapa tampilan . Ini normal. Anda dapat melihat data yang sama persis di Excel sebagai angka dan diagram. Dalam game, Anda dapat melihat acara dari tampilan orang pertama, orang ketiga, atau peta, ditambah banyak lainnya . Semua ini adalah tampilan berbeda untuk satu Model ."

"Semua kode yang memutuskan apa yang harus diubah dalam model sebagai respons terhadap tindakan pengguna dikumpulkan ke dalam Pengontrol . Misalnya, jika pengguna memutuskan untuk menutup program, maka Anda perlu menyimpan data model ke file di disk. Atau jika pengguna memasukkan data baru, Anda perlu menambahkannya ke model. Model kemudian akan memberi tahu semua tampilan tentang perubahan data, sehingga mereka hanya menampilkan status data saat ini."

"Katakan itu lagi."

"Dari perspektif pengembang Java, kita dapat mengatakan bahwa model, tampilan, dan pengontrol adalah tiga kelompok kelas di mana:"

" a)  setiap bagian memiliki tujuannya masing-masing;"

" b)  hubungan antar kelas dalam satu kelompok sangat kuat;"

" c)  hubungan antar kelompok sangat lemah;"

" d)  cara bagian-bagian berkomunikasi satu sama lain diatur dengan ketat."

"Dan inilah cara lain untuk menggambarkannya:

MVC - 1

"Model adalah bagian paling independen dari sistem . Model tidak bergantung pada tampilan atau pengontrol. Model tidak dapat menggunakan kelas dari grup tampilan atau pengontrol (!)."

"Keterbatasan utama tampilan adalah tidak dapat mengubah model . Kelas tampilan dapat mengakses model untuk data atau berlangganan acara, tetapi kelas tampilan tidak dapat mengubah model."

"Keterbatasan utama pengontrol adalah tidak menampilkan data . Pengontrol memproses tindakan pengguna dan memodifikasi model sesuai dengan itu."

"Tapi kenapa aku membutuhkan ini?"

"Fakta bahwa kamu tidak menggunakan ini sekarang, tidak berarti bahwa kamu tidak akan menggunakan ini dalam waktu dekat. Kamu di sini belajar untuk mendapatkan pekerjaan. Dan bahkan jika pengetahuan ini tidak berguna selama belajar, itu pasti akan berguna saat bekerja."

"Lagipula, proyek dan wawancara nyata masih menunggumu..."

"Kita di sini sedang berbicara bersama sekarang, tapi mungkin dalam sebulan kamu sudah akan bekerja."

"Kamu benar sekali, Bilaabo. Aku akan mendengarkanmu baik-baik."

"Pola MVC sangat umum dalam arsitektur aplikasi. Anda perlu mengetahuinya, sehingga Anda tidak tiba-tiba mulai menambahkan kelas tampilan ke model karena menurut Anda cara itu lebih nyaman."

"Hal terpenting dalam proyek apa pun adalah arsitekturnya.  Tugas Anda pada tahap ini bukanlah untuk dapat menciptakan arsitektur yang baik, melainkan belajar memahami arsitektur orang lain. Anda masih perlu tumbuh untuk beberapa tahun sebelum Anda membuat sendiri. Tapi Anda perlu memahami apa yang telah dibuat orang lain. Segera."

“Ketika sebuah aplikasi menggunakan arsitektur standar, semuanya menjadi lebih jelas. Dengan mengetahui arsitekturnya, Anda tahu di mana segala sesuatu berada, bagaimana semuanya berinteraksi, kira-kira bagaimana program bekerja, di mana menambahkan kelas yang diperlukan, dan di mana mencari penyebab serangga."

"Tapi, jika Anda tidak terbiasa dengan pendekatan standar untuk arsitektur, bahkan arsitektur terbaik pun tidak akan memberi tahu Anda apa pun. Anda akan seperti petani dari abad pertengahan yang melihat mobil baru. Mobil standar."

"Begitu. Terima kasih untuk pelajaran yang menarik, Bilaabo."

"Akhirnya, ini adalah tautan bagus yang harus Anda periksa:"

Tautan ke materi tambahan