"Hai, Amigo!"

"Hai, Bilaabo!"

"Anda sudah menjadi pengaturcara yang mantap. Jadi, hari ini kita akan mengadakan pelajaran tentang MVC."

"MVC adalah singkatan kepada ModelViewController . Ia merupakan corak reka bentuk seni bina untuk aplikasi besar, di mana aplikasi itu dibahagikan kepada tiga bahagian."

"Bahagian pertama mengandungi semua logik perniagaan aplikasi . Bahagian ini dipanggil model . Ia mengandungi kod yang melakukan semua aplikasi yang dibuat untuk dilakukan. Bahagian ini paling kurang bergantung pada yang lain."

"Bahagian kedua mengandungi semua yang berkaitan dengan memaparkan data kepada pengguna . Bahagian ini dipanggil paparan . Ia mengandungi kod yang mengawal paparan tetingkap, halaman, mesej, dsb."

"Bahagian ketiga mengandungi kod yang memproses tindakan pengguna . Sebarang tindakan pengguna yang bertujuan untuk menukar model harus dikendalikan di sini. Bahagian ini dipanggil Pengawal   . "

"Pendekatan ini membolehkan anda mencipta tiga perkara secara bebas:  logik program (model) , mekanisme untuk memaparkan data program kepada pengguna (pandangan) dan pengendali untuk input/tindakan pengguna (pengawal) ."

"Aplikasi selalunya mempunyai beberapa paparan . Ini adalah perkara biasa. Anda boleh melihat data yang sama dalam Excel sebagai kedua-dua nombor dan rajah. Dalam permainan, anda boleh melihat acara daripada orang pertama, orang ketiga atau paparan peta, serta banyak lagi . Semua ini adalah pandangan yang berbeza untuk satu Model ."

"Semua kod yang memutuskan perkara yang perlu diubah dalam model sebagai tindak balas kepada tindakan pengguna dikumpulkan ke dalam Pengawal . Contohnya, jika pengguna memutuskan untuk menutup program, maka anda perlu menyimpan data model ke fail pada cakera. Atau jika pengguna memasukkan data baharu, maka anda perlu menambahkannya pada model. Model kemudian akan memberitahu semua pandangan tentang perubahan data, jadi mereka hanya memaparkan keadaan semasa data."

"Cakap sekali lagi."

"Dari perspektif pembangun Java, kita boleh mengatakan bahawa model, paparan dan pengawal ialah tiga kumpulan kelas di mana:"

" a)  setiap bahagian mempunyai tujuannya sendiri;"

" b)  hubungan antara kelas satu kumpulan adalah sangat kuat;"

" c)  hubungan antara kumpulan sangat lemah;"

" d)  cara bahagian-bahagian berkomunikasi antara satu sama lain sangat dikawal selia."

"Dan inilah cara lain untuk menggambarkannya:

MVC - 1

"Model ialah bahagian sistem yang paling bebas . Ia tidak bergantung pada paparan atau pengawal. Model tidak boleh menggunakan kelas daripada paparan atau kumpulan pengawal(!)."

"Had utama paparan ialah ia tidak boleh menukar model . Kelas lihat boleh mengakses model untuk data atau melanggan acara, tetapi kelas lihat tidak boleh menukar model."

"Had utama pengawal ialah ia tidak memaparkan data . Pengawal memproses tindakan pengguna dan mengubah suai model dengan sewajarnya."

"Tetapi kenapa saya perlukan ini?"

"Hakikat bahawa anda tidak menggunakan ini sekarang, tidak bermakna anda tidak akan menggunakan ini dalam masa terdekat. Anda di sini belajar untuk mendapatkan pekerjaan. Dan walaupun pengetahuan ini tidak terbukti berguna sementara belajar, ia pasti berguna semasa bekerja."

"Lagipun, projek dan temu bual sebenar masih menanti anda..."

"Kami di sini bercakap bersama-sama sekarang, tetapi mungkin dalam sebulan anda akan bekerja."

"Anda betul sekali, Bilaabo. Saya akan mendengar anda dengan teliti."

"Corak MVC sangat biasa dalam seni bina aplikasi. Anda perlu mengetahuinya, supaya anda tidak tiba-tiba mula menambah kelas paparan pada model kerana anda mendapati cara itu lebih mudah."

"Perkara yang paling penting dalam mana-mana projek ialah seni binanya.  Tugas anda pada peringkat ini bukanlah untuk dapat mencipta seni bina yang baik, tetapi untuk belajar memahami seni bina orang lain. Anda masih perlu berkembang untuk beberapa tahun sebelum anda mencipta sendiri. Tetapi anda perlu memahami apa yang orang lain cipta. Segera."

"Apabila aplikasi menggunakan seni bina standard, semuanya menjadi lebih jelas. Dengan mengetahui seni bina, anda tahu di mana keadaan, bagaimana segala-galanya berinteraksi, kira-kira cara program berfungsi, di mana untuk menambah kelas yang diperlukan, dan di mana untuk mencari punca pepijat."

"Tetapi, jika anda tidak biasa dengan pendekatan standard untuk seni bina, maka seni bina yang terbaik pun tidak akan memberitahu anda apa-apa. Anda akan menjadi seperti petani dari zaman pertengahan melihat kereta baharu. Kereta standard."

"Saya faham. Terima kasih atas pengajaran yang menarik, Bilaabo."

"Akhir sekali, berikut adalah pautan yang bagus yang pasti anda perlu lihat:"

Pautan ke bahan tambahan