Ang materyal na ito ay bahagi ng seryeng "Introduction to Enterprise Development". Mga nakaraang artikulo:
- tungkol sa network ;
- tungkol sa arkitektura ng software ;
- tungkol sa mga protocol ng HTTP/HTTPS ;
- tungkol sa mga pangunahing kaalaman sa Maven ;
- tungkol sa mga servlet (nagsusulat kami ng isang simpleng web application) ;
- tungkol sa mga lalagyan ng servlet .
Kasaysayan ng MVC
Ang mga ideya para sa MVC ay binuo ni Trygve Reenskaug habang nagtatrabaho sa Xerox PARC noong huling bahagi ng dekada 70. Noong mga panahong iyon, imposibleng magtrabaho sa isang computer nang walang akademikong degree at patuloy na pag-aaral ng napakaraming dokumentasyon. Ang problemang nalutas ni Reenskaug kasama ng isang grupo ng napakalakas na developer ay ang pasimplehin ang pakikipag-ugnayan ng karaniwang user sa isang computer. Kinailangan na lumikha ng mga tool na, sa isang banda, ay magiging sobrang simple at nauunawaan, at sa kabilang banda, gagawing posible na pamahalaan ang isang computer at kumplikadong mga application. Nagtrabaho si Reenskaug sa koponan na bumuo ng portable na computer "para sa mga bata sa lahat ng edad" - Dynabook, pati na rin ang wikang SmallTalk sa ilalim ng pamumuno ni Alan Kay. Noon at doon na inilatag ang mga konsepto ng isang friendly na interface. Ang trabaho ni Reenskaug kasama ang kanyang koponan ay lubos na nakaimpluwensya sa pag-unlad ng larangan ng IT. Ipakita natin ang isang kawili-wiling katotohanan na hindi direktang nauugnay sa MVC, ngunit inilalarawan ang kahalagahan ng mga pag-unlad na iyon. Noong 2007, pagkatapos ng pagtatanghal ng Apple iPhone, sinabi ni Alan Kay: "Nang lumabas ang Macintosh, tinanong ng Newsweek kung ano ang naisip ko dito. Sinabi ko: ito ang unang personal na computer na karapat-dapat sa pagpuna. Pagkatapos ng pagtatanghal, dumating si Steve Jobs at nagtanong: ang iPhone ba ay karapat-dapat sa pagpuna? At ang sabi ko, gawin mong five by eight inches and you will conquer the world.” Pagkalipas ng tatlong taon, noong Enero 27, 2010, ipinakilala ng Apple ang 9.7-pulgadang iPad. Ibig sabihin, halos literal na sinunod ni Steve Jobs ang payo ni Alan Kay. Ang proyektong pinaghirapan ni Rennskaug ay tumagal ng 10 taon. At ang unang publikasyon tungkol sa MVC mula sa mga tagalikha nito ay nai-publish isa pang 10 taon mamaya. Binanggit ni Martin Fowler, may-akda ng ilang libro at artikulo sa arkitektura ng software, na natutunan niya ang MVC mula sa gumaganang bersyon ng SmallTalk. Dahil walang impormasyon tungkol sa MVC mula sa pangunahing mapagkukunan sa loob ng mahabang panahon, pati na rin para sa maraming iba pang mga kadahilanan, isang malaking bilang ng iba't ibang mga interpretasyon ng konseptong ito ang lumitaw. Bilang resulta, itinuturing ng maraming tao ang MVC bilang isang scheme o pattern ng disenyo. Hindi gaanong karaniwan, ang MVC ay tinatawag na composite pattern o kumbinasyon ng ilang pattern na nagtutulungan upang ipatupad ang mga kumplikadong application. Ngunit sa katunayan, gaya ng sinabi kanina, ang MVC ay pangunahing isang hanay ng mga ideya/prinsipyo/diskarte sa arkitektura na maaaring ipatupad sa iba't ibang paraan gamit ang iba't ibang mga pattern... Susunod, susubukan nating tingnan ang mga pangunahing ideya na nakapaloob sa konsepto ng MVC.Ano ang MVC: mga pangunahing ideya at prinsipyo
- Ang VC ay isang hanay ng mga ideya at prinsipyo sa arkitektura para sa pagbuo ng mga kumplikadong sistema ng impormasyon na may user interface;
- Ang MVC ay isang acronym na nangangahulugang Model-View-Controller.
Hakbang 1: Ihiwalay ang lohika ng negosyo ng application mula sa user interface
Ang pangunahing ideya ng MVC ay ang anumang application na may user interface ay maaaring, sa unang pagtataya, ay nahahati sa 2 module: isang module na responsable para sa pagpapatupad ng business logic ng application, at isang user interface. Ipapatupad ng unang module ang pangunahing functionality ng application. Ang module na ito ang magiging core ng system, kung saan ipinatupad ang modelo ng domain ng application. Sa konsepto ng MVC, ang modyul na ito ay magiging ating titik M, i.e. modelo. Ipapatupad ng pangalawang module ang buong user interface, kabilang ang pagpapakita ng data sa user at ang lohika ng pakikipag-ugnayan ng user sa application. Ang pangunahing layunin ng paghihiwalay na ito ay upang matiyak na ang core ng system (Modelo sa terminolohiya ng MVC) ay maaaring independiyenteng mabuo at masuri. Ang arkitektura ng application pagkatapos ng naturang dibisyon ay magiging ganito:Hakbang 2. Gamit ang pattern ng Observer, makamit ang mas higit na kalayaan ng modelo, pati na rin ang pag-synchronize ng mga user interface
Dito namin hinahabol ang 2 layunin:- Makamit ang mas higit na kalayaan ng modelo.
- I-synchronize ang mga interface ng gumagamit.
Hakbang 3. Paghahati sa interface sa View at Controller
Patuloy naming hinahati ang application sa mga module, ngunit sa mas mababang antas ng hierarchy. Sa hakbang na ito, ang user interface (na pinaghiwalay sa isang hiwalay na module sa hakbang 1) ay nahahati sa isang view at isang controller. Mahirap gumuhit ng mahigpit na linya sa pagitan ng view at controller. Kung sasabihin natin na ang view ay kung ano ang nakikita ng user, at ang controller ay ang mekanismo kung saan maaaring makipag-ugnayan ang user sa system, mayroong ilang kontradiksyon. Ang mga kontrol, gaya ng mga button sa isang web page o isang virtual na keyboard sa screen ng telepono, ay mahalagang bahagi ng controller. Ngunit ang mga ito ay nakikita ng gumagamit tulad ng anumang bahagi ng view. Narito kami ay nagsasalita nang higit pa tungkol sa functional division. Ang pangunahing gawain ng user interface ay upang matiyak ang pakikipag-ugnayan ng user sa system. Nangangahulugan ito na ang interface ay may 2 function lamang:- ipakita at maginhawang ipakita ang impormasyon tungkol sa system sa user;
- ipasok ang data ng user at mga utos sa system (ipadala ang mga ito sa system);
- Kasunod ng mga prinsipyo ng MVC, kailangang hatiin ang system sa mga module.
- Ang pinakamahalaga at independiyenteng modyul ay dapat ang modelo.
- Ang modelo ay ang core ng system. Kailangan mo ng kakayahang bumuo at subukan ito nang hiwalay sa interface.
- Upang gawin ito, sa unang hakbang ng paghihiwalay ng system, kailangan mong hatiin ito sa isang modelo at isang interface.
- Susunod, gamit ang pattern ng Observer, pinalalakas namin ang modelo sa pagsasarili nito at kumuha ng pag-synchronize ng mga interface ng gumagamit.
- Ang ikatlong hakbang ay upang hatiin ang interface sa isang controller at isang view.
- Ang lahat ng kailangan para magpasok ng impormasyon mula sa user sa system ay nasa controller.
- Lahat ng naglalabas ng impormasyon mula sa system patungo sa user ay makikita.
GO TO FULL VERSION