CodeGym /Blog Jawa /Acak /Part 7. Ngenalke pola MVC (Model-View-Controller).
John Squirrels
tingkat
San Francisco

Part 7. Ngenalke pola MVC (Model-View-Controller).

Diterbitake ing grup
Materi iki minangka bagéan saka seri "Introduction to Enterprise Development". Artikel sadurunge: Bagean 7. Ngenalake pola MVC (Model-View-Controller) - 1Ing artikel iki, kita bakal ngerti babagan sing diarani MVC. Kita bakal ngomong babagan apa MVC, tutul sejarahe, jelajahi ide lan konsep dhasar sing ana ing MVC, deleng langkah-langkah carane mbatalake aplikasi dadi modul Model, View, lan Controller, tulisen aplikasi web cilik nggunakake Spring Boot, lan, nggunakake Spring MVC minangka conto, ndeleng carane data dikirim saka kode Jawa kanggo kaca HTML. Kanggo mangerteni materi iki, sampeyan kudu ngerti pola desain, utamane pengamat lan fasad. Lan kenal karo panjalukan lan tanggapan HTTP, ngerti dhasar HTML, lan ngerti apa anotasi Jawa. Njupuk secangkir kopi lan cemilan, lan kepenak. Ayo diwiwiti.

Sejarah saka MVC

Gagasan ing mburi MVC dirumusake dening Trygve Reenskaug nalika makarya ing Xerox PARC ing pungkasan taun 1970-an. Ing dina iku, nggarap komputer mbutuhake gelar lan sinau pancet dokumentasi voluminous. Tugas sing ditanggulangi dening Reenskaug bebarengan karo klompok pangembang sing kuwat yaiku nyederhanakake interaksi pangguna biasa karo komputer. Sampeyan perlu kanggo nggawe alat sing, ing tangan siji, bakal arang banget prasaja lan dingerteni, lan ing tangan liyane, bakal nggawe iku bisa kanggo ngontrol komputer lan aplikasi Komplek. Reenskaug kerja ing tim sing ngembangake komputer laptop "kanggo bocah-bocah kabeh umur" - Dynabook, uga basa SmallTalk ing pimpinan Alan Kay. Nalika iku konsep antarmuka sing ramah ditata. Ing pirang-pirang bab, karya rampung dening Reenskaug lan tim dipengaruhi évolusi saka bal IT. Iki minangka kasunyatan menarik sing ora langsung ditrapake kanggo MVC, nanging nggambarake pentinge pangembangan kasebut. Alan Kayngandika, "Nalika aku pisanan menyang Apple, kang ana ing '84, Mac wis metu lan Newsweek hubungi kula lan takon kula apa aku mikir Mac. Aku ngandika, 'Inggih, Mac iku komputer pribadi pisanan cukup apik kanggo dikritik.' Dadi, sawise ngumumake iPhone ing taun 2007, dheweke nggawa menyang aku lan nyerahake marang aku. Dheweke kandha, 'Alan, apa iki cukup apik kanggo dikritik?' Lan aku kandha, 'Steve, nggawe ukurane kaya tablet lan sampeyan bakal nguwasani jagad iki.'" Sawise 3 taun, tanggal 27 Januari 2010, Apple ngenalake iPad kanthi diagonal 9,7 inci. Kanthi tembung liyane, Steve Jobs ngetutake saran Alan Kay meh persis. Proyek Reenskaug suwene 10 taun. Nanging publikasi pisanan babagan MVC katon sawise 10 taun liyane. Martin Fowler, penulis sawetara buku lan artikel babagan arsitektur piranti lunak, nyebataken bilih piyambakipun sinau MVC nggunakake versi digunakake Smalltalk. Amarga ora ana informasi babagan MVC saka sumber asli kanggo dangu, lan kanggo sawetara alasan liyane, nomer akeh interpretasi beda konsep iki muncul. Akibaté, akeh sing nganggep MVC minangka pola desain. Kurang umum, MVC diarani pola komposit utawa kombinasi sawetara pola sing bisa bebarengan kanggo nggawe aplikasi rumit. Nanging, kaya sing wis kasebut sadurunge, MVC sejatine utamane minangka ide / prinsip / pendekatan arsitektur sing bisa diimplementasikake kanthi macem-macem cara nggunakake pola sing beda-beda ... Sabanjure, kita bakal nimbang gagasan utama sing ana ing konsep MVC. lan kanggo sawetara alasan liyane, nomer akeh interpretasi beda konsep iki muncul. Akibaté, akeh sing nganggep MVC minangka pola desain. Kurang umum, MVC diarani pola komposit utawa kombinasi sawetara pola sing bisa bebarengan kanggo nggawe aplikasi rumit. Nanging, kaya sing wis kasebut sadurunge, MVC sejatine utamane minangka ide / prinsip / pendekatan arsitektur sing bisa diimplementasikake kanthi macem-macem cara nggunakake pola sing beda-beda ... Sabanjure, kita bakal nimbang gagasan utama sing ana ing konsep MVC. lan kanggo sawetara alasan liyane, nomer akeh interpretasi beda konsep iki muncul. Akibaté, akeh sing nganggep MVC minangka pola desain. Kurang umum, MVC diarani pola komposit utawa kombinasi sawetara pola sing bisa bebarengan kanggo nggawe aplikasi rumit. Nanging, kaya sing wis kasebut sadurunge, MVC sejatine utamane minangka ide / prinsip / pendekatan arsitektur sing bisa diimplementasikake kanthi macem-macem cara nggunakake pola sing beda-beda ... Sabanjure, kita bakal nimbang gagasan utama sing ana ing konsep MVC.

MVC: Gagasan lan prinsip dhasar

  • VC minangka sakumpulan gagasan lan prinsip arsitektur kanggo mbangun sistem informasi sing kompleks kanthi antarmuka panganggo
  • MVC minangka singkatan saka: Model-View-Controller
Penafian: MVC dudu pola desain. MVC minangka sakumpulan gagasan lan prinsip arsitektur kanggo mbangun sistem kompleks kanthi antarmuka panganggo. Nanging kanggo penak, supaya ora bola-bali ngucapake "sakumpulan gagasan arsitektur ...", kita bakal ngrujuk menyang pola MVC. Ayo dadi miwiti karo prasaja. Apa sing didhelikake ing tembung Model-View-Controller? Nalika nggunakake pola MVC kanggo ngembangake sistem kanthi antarmuka pangguna, sampeyan kudu dibagi sistem dadi telung komponen. Padha uga bisa disebut modul utawa komponen. Nelpon apa sampeyan bakal, nanging dibagi sistem dadi telung komponen. Saben komponen duwe tujuan dhewe. Model. Komponen/modul pisanan diarani model. Isine kabeh logika bisnis aplikasi. Ndeleng.Bagian kapindho sistem yaiku tampilan. Modul iki tanggung jawab kanggo nampilake data menyang pangguna. Kabeh sing dideleng pangguna digawe dening tampilan. Pengontrol.Link katelu ing chain iki controller. Isine kode sing tanggung jawab kanggo nangani tumindak pangguna (kabeh tumindak pangguna ditangani ing pengontrol). Model minangka bagéan paling independen saka sistem. Dadi independen sing kudu ora ngerti apa-apa bab tampilan lan modul controller. Model kasebut mandiri banget, mula pangembange ora ngerti babagan tampilan lan pengontrol. Tujuan utama tampilan yaiku nyedhiyakake informasi saka model ing format sing bisa dikonsumsi pangguna. Watesan utama tampilan yaiku ora kudu ngganti model kanthi cara apa wae. Tujuan utama pengontrol yaiku kanggo nangani tumindak pangguna. Iku liwat controller sing pangguna nggawe owahan kanggo model. Utawa luwih tepat, kanggo data sing disimpen ing model. Mangkene diagram sing sampeyan deleng sadurunge ing wulangan: Bagean 7. Ngenalake pola MVC (Model-View-Controller) - 2Saka kabeh iki, kita bisa nggawe kesimpulan logis. Sistem kompleks kudu dipérang dadi modul. Ayo kanthi ringkes njlèntrèhaké langkah-langkah kanggo nggayuh pemisahan iki.

Langkah 1. Pisah logika bisnis aplikasi saka antarmuka panganggo

Ide utama MVC yaiku aplikasi apa wae kanthi antarmuka pangguna bisa dipérang dadi 2 modul: modul sing tanggung jawab kanggo ngetrapake logika bisnis, lan antarmuka pangguna. Modul pisanan bakal ngetrapake fungsi utama aplikasi kasebut. Modul iki minangka inti saka sistem, ing ngendi model domain aplikasi dileksanakake. Ing paradigma MVC, modul iki minangka huruf M, yaiku model. Modul kapindho ngetrapake kabeh antarmuka pangguna, kalebu logika kanggo nampilake data menyang pangguna lan nangani interaksi pangguna karo aplikasi kasebut. Tujuan utama pemisahan iki yaiku kanggo mesthekake yen inti sistem ("model" ing terminologi MVC) bisa dikembangake lan diuji kanthi mandiri. Sawise nggawe pemisahan iki, arsitektur aplikasi katon kaya iki: Part 7. Ngenalke pola MVC (Model-View-Controller) - 3

Langkah 2 Gunakake pola pengamat kanggo nggawe model luwih mandiri lan nyinkronake antarmuka pangguna

Ing kene kita duwe 2 gol:
  1. Entuk kamardikan sing luwih gedhe kanggo model kasebut
  2. Sinkronisasi antarmuka panganggo
Conto ing ngisor iki bakal mbantu sampeyan ngerti apa tegese sinkronisasi antarmuka pangguna. Upaminipun kita tuku tiket film online lan ndeleng nomer kursi kasedhiya ing téater. Ing wektu sing padha, wong liya bisa uga tuku tiket film. Yen wong liya iki tuku tiket sadurunge kita, kita pengin ndeleng nyuda jumlah kursi sing kasedhiya kanggo pertunjukan sing kita pikirake. Saiki ayo dipikirake carane iki bisa ditindakake ing program. Upaminipun kita duwe inti sistem (model kita) lan antarmuka (kaca web kanggo tuku tiket). Loro pangguna nyoba milih kursi ing teater bebarengan. Pangguna pisanan tuku tiket. Kaca web kudu nuduhake menyang pangguna kapindho yen kedadeyan kasebut. Kepiye carane iki kedadeyan? Yen kita nganyari antarmuka saka inti, banjur inti (model kita) bakal gumantung ing antarmuka. Nalika ngembangake lan nguji model kasebut, kita kudu ngelingi macem-macem cara nganyari antarmuka. Kanggo nggayuh iki, kita kudu ngetrapake pola pengamat. Pola iki ngidini model ngirim kabar pangowahan menyang kabeh pamireng. Minangka pamiyarsa acara (utawa pengamat), antarmuka panganggo nampa kabar lan dianyari. Ing sisih siji, pola pengamat ngidini model ngandhani antarmuka (tampilan lan pengontrol) yen owah-owahan wis kedadeyan tanpa ngerti apa-apa, saengga tetep mandiri. Ing tangan liyane, iku ndadekake iku bisa kanggo nyinkronake antarmuka panganggo. kita kudu ngetrapake pola pengamat. Pola iki ngidini model ngirim kabar pangowahan menyang kabeh pamireng. Minangka pamiyarsa acara (utawa pengamat), antarmuka panganggo nampa kabar lan dianyari. Ing sisih siji, pola pengamat ngidini model ngandhani antarmuka (tampilan lan pengontrol) yen owah-owahan wis kedadeyan tanpa ngerti apa-apa, saengga tetep mandiri. Ing tangan liyane, iku ndadekake iku bisa kanggo nyinkronake antarmuka panganggo. kita kudu ngetrapake pola pengamat. Pola iki ngidini model ngirim kabar pangowahan menyang kabeh pamireng. Minangka pamiyarsa acara (utawa pengamat), antarmuka panganggo nampa kabar lan dianyari. Ing sisih siji, pola pengamat ngidini model ngandhani antarmuka (tampilan lan pengontrol) yen owah-owahan wis kedadeyan tanpa ngerti apa-apa, saengga tetep mandiri. Ing tangan liyane, iku ndadekake iku bisa kanggo nyinkronake antarmuka panganggo.

Langkah 3 Pisahake antarmuka menyang tampilan lan pengontrol

Kita terus dibagi aplikasi menyang modul, nanging saiki ing tingkat ngisor ing hirarki. Ing langkah iki, antarmuka panganggo (sing dipisahake dadi modul sing béda ing langkah 1) dipérang dadi tampilan lan pengontrol. Nggambar garis sing ketat ing antarane tampilan lan pengontrol iku angel. Yen kita ngomong yen tampilan minangka pangguna sing ndeleng, lan pengontrol minangka mekanisme sing ngidini pangguna sesambungan karo sistem kasebut, sampeyan bisa uga nuduhake kontradiksi. Unsur kontrol, kayata tombol ing kaca web utawa keyboard virtual ing layar telpon, Sejatine bagean saka controller. Nanging padha katon kanggo pangguna minangka bagean saka tampilan. Apa sing kita ucapake ing kene yaiku pemisahan fungsional. Tugas utama antarmuka pangguna yaiku kanggo nggampangake interaksi pangguna karo sistem kasebut.
  • output lan gampang nampilake informasi sistem kanggo pangguna
  • ketik data pangguna lan printah (komunikasi menyang sistem)
Fungsi kasebut nemtokake cara antarmuka pangguna kudu dipérang dadi modul. Ing pungkasan, arsitektur sistem katon kaya iki: Part 7. Ngenalke pola MVC (Model-View-Controller) - 4Lan iki carane kita teka ing aplikasi dumadi saka telung modul disebut model, tampilan lan controller. Ayo ngringkes:
  1. Miturut prinsip paradigma MVC, sistem kudu dipérang dadi modul.
  2. Modul sing paling penting lan mandiri kudu dadi model.
  3. Model minangka inti saka sistem. Sampeyan kudu bisa ngembangake lan nguji kanthi bebas saka antarmuka panganggo.
  4. Kanggo entuk iki, ing langkah pisanan divisi, kita kudu pamisah sistem dadi model lan antarmuka panganggo.
  5. Banjur, nggunakake pola pengamat, kita nambah kamardikan model lan nyinkronake antarmuka pangguna.
  6. Langkah katelu kanggo dibagi antarmuka panganggo menyang controller lan tampilan.
  7. Kabeh sing dibutuhake kanggo nampa data pangguna menyang sistem ana ing pengontrol.
  8. Kabeh sing dibutuhake kanggo ngirim informasi menyang pangguna ana ing tampilan.
Mung siji bab liyane penting kanggo ngrembug sadurunge sampeyan bisa ngombe coklat panas.

A sethitik babagan carane tampilan lan controller sesambungan karo model

Kanthi ngetik informasi liwat controller, pangguna ngganti model. Utawa paling ora, pangguna ngganti data model. Nalika pangguna nampa informasi liwat unsur antarmuka (liwat tampilan), pangguna nampa informasi babagan model. Kepiye kedadeyan iki? Kanthi cara apa tampilan lan pengontrol sesambungan karo model? Sawise kabeh, kelas tampilan ora bisa langsung nelpon metode kelas model kanggo maca / nulis data. Yen ora, kita ora bakal bisa ujar manawa model kasebut mandiri. Model kasebut minangka kumpulan kelas sing raket banget sing ora bisa diakses dening tampilan utawa pengontrol. Kanggo nyambungake model menyang tampilan lan pengontrol, kita kudu ngetrapake pola desain fasad. Fasad model yaiku lapisan antarane model lan antarmuka pangguna, liwat kang tampilan nampa data trep format, lan Controller ngganti data dening nelpon cara perlu ing fasad. Ing pungkasan, kabeh katon kaya iki: Part 7. Ngenalke pola MVC (Model-View-Controller) - 6

MVC: Apa sing kita entuk?

Tujuan utama paradigma MVC yaiku misahake implementasi logika bisnis (model) saka visualisasi (tampilan). Pemisahan iki nambah kemungkinan kanggo nggunakake maneh kode. Keuntungan saka MVC paling jelas nalika kita kudu nampilake data sing padha ing macem-macem format. Contone, minangka tabel, grafik, utawa grafik (nggunakake tampilan sing beda). Ing wektu sing padha, tanpa mengaruhi cara tampilan ditindakake, kita bisa ngganti cara nanggapi tumindak pangguna (klik tombol, entri data). Yen sampeyan ngetutake prinsip MVC, sampeyan bisa nyederhanakake pangembangan piranti lunak, nambah keterbacaan kode, lan nambah ekstensibilitas lan maintainability. Ing artikel pungkasan ing seri "Introduction to Enterprise Development", kita bakal ndeleng implementasine MVC sing dibangun nggunakake Spring MVC. Part 8. Ayo nulis aplikasi cilik nggunakake Spring Boot
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION