Ин мавод як қисми силсилаи «Муқаддима ба рушди корхона» мебошад. Мақолаҳои қаблӣ:
- дар бораи шабака ;
- дар бораи меъмории нармафзор ;
- дар бораи протоколҳои HTTP/HTTPS ;
- дар бораи асосҳои Maven ;
- дар бораи сервлетҳо (мо як барномаи оддии веб менависем) ;
- дар бораи контейнерҳои сервлет .
Таърихи MVC
Ғояҳои MVC аз ҷониби Тригве Реенскауг ҳангоми кор дар Xerox PARC дар охири солҳои 70-ум таҳия шуда буданд. Дар он рӯзҳо, кор бо компютер бидуни дараҷаи илмӣ ва омӯзиши доимии ҳуҷҷатҳои ҳаҷм ғайриимкон буд. Мушкилоте, ки Reenskaug якҷоя бо як гурӯҳи таҳиягарони хеле қавӣ ҳал кард, содда кардани ҳамкории корбари миёна бо компютер буд. Воситахоеро ба вучуд овардан лозим буд, ки аз як тараф нихоят содда ва фахмо бошанд, аз тарафи дигар барои идора кардани компютер ва замимахои мураккаб имкон медоданд. Reenskaug дар гурӯҳе кор кардааст, ки компютери сайёри "барои кӯдакони ҳама синну сол" - Dynabook ва инчунин забони SmallTalk таҳти роҳбарии Алан Кей таҳия кардааст. Он вақт ва дар он ҷо консепсияҳои интерфейси дӯстона гузошта шуданд. Кори Реенскауг бо дастаи худ ба рушди соҳаи IT таъсири калон расонд. Биёед як далели ҷолиберо пешниҳод кунем, ки мустақиман ба MVC алоқаманд нест, аммо аҳамияти ин пешрафтҳоро нишон медиҳад. Дар соли 2007, пас аз муаррифии iPhone-и Apple, Алан Кей гуфт: "Вақте ки Macintosh баромад, Newsweek пурсид, ки ман дар бораи он чӣ фикр мекунам. Гуфтам: ин аввалин компютери фардӣ аст, ки сазовори интиқод аст. Пас аз муаррифӣ Стив Ҷобс баромад ва пурсид: оё iPhone сазовори интиқод аст? Ва ман гуфтам, ки онро панҷ ба ҳашт дюйм созед ва шумо ҷаҳонро мағлуб хоҳед кард ». Пас аз се сол, 27 январи соли 2010, Apple iPad-и 9,7 дюймиро муаррифӣ кард. Яъне, Стив Ҷобс ба маслиҳати Алан Кей амал кард, ки қариб айнан ба маънои аслӣ буд. Лоиҳае, ки Реннскауг дар он кор кардааст, 10 сол давом кард. Ва аввалин нашрия дар бораи MVC аз созандагони он пас аз 10 соли дигар нашр шуд. Мартин Фаулер, муаллифи як қатор китобҳо ва мақолаҳо оид ба меъмории нармафзор, қайд мекунад, ки ӯ MVC-ро аз versionи кории SmallTalk омӯхтааст. Азбаски муддати тӯлонӣ дар бораи MVC аз сарчашмаи аввалия маълумот мавҷуд набуд, инчунин бо як қатор сабабҳои дигар, шумораи зиёди тафсирҳои гуногуни ин консепсия пайдо шуданд. Дар натиҷа, бисёриҳо MVC-ро нақша ё намунаи тарроҳӣ медонанд. Камтар, MVC намунаи таркибӣ ё омезиши якчанд намунаҳо номида мешавад, ки барои татбиқи барномаҳои мураккаб якҷоя кор мекунанд. Аммо дар асл, тавре ки қаблан гуфта шуд, MVC пеш аз ҳама маҷмӯи ғояҳо/принсипҳо/равишҳои меъморӣ мебошад, ки метавонанд бо роҳҳои гуногун бо истифода аз намунаҳои гуногун амалӣ карда шаванд... Минбаъд, мо кӯшиш мекунем, ки идеяҳои асосии дар консепсияи MVC ҷойгиршударо дида бароем.MVC чист: ғояҳо ва принсипҳои асосӣ
- VC маҷмӯи ғояҳо ва принсипҳои меъморӣ барои сохтани системаҳои иттилоотии мураккаб бо интерфейси корбар аст;
- MVC ихтисоротест, ки маънои Model-View-Controller мебошад.
Қадами 1: Мантиқи тиҷорати барномаро аз интерфейси корбар ҷудо кунед
Идеяи асосии MVC аз он иборат аст, ки ҳама гуна замима бо интерфейси корбар метавонад ба тахмини аввал ба 2 модул тақсим карда шавад: модуле, ки барои татбиқи мантиқи тиҷоратии барнома масъул аст ва интерфейси корбар. Модули якум функсияҳои асосии барномаро амалӣ хоҳад кард. Ин модул асоси система хоҳад буд, ки дар он модели домени барнома амалӣ карда мешавад. Дар консепсияи MVC, ин модул ҳарфи M мо хоҳад буд, яъне. модел. Модули дуюм тамоми интерфейси корбарро, аз ҷумла намоиши маълумот ба корбар ва мантиқи ҳамкории корбарро бо барнома амалӣ хоҳад кард. Мақсади асосии ин ҷудокунӣ таъмини он аст, ки асосии система (Модели истилоҳоти MVC) мустақилона таҳия ва санҷида шавад. Меъмории барнома пас аз чунин тақсимот чунин хоҳад буд:Қадами 2. Бо истифода аз намунаи Observer, ба мустақorяти бештари модел ноил шавед ва инчунин ҳамоҳангсозии интерфейсҳои корбар
Дар ин ҷо мо 2 ҳадафро пайгирӣ мекунем:- Ба мустакorяти боз хам бештари модел ноил шавед.
- Интерфейси корбарро ҳамоҳанг созед.
Қадами 3. Тақсим кардани интерфейс ба View ва Controller
Мо тақсим кардани барномаро ба модулҳо идома медиҳем, аммо дар сатҳи поёнтари иерархия. Дар ин қадам, интерфейси корбар (ки дар қадами 1 ба модули алоҳида ҷудо карда шудааст) ба намоиш ва контроллер тақсим карда мешавад. Байни манзара ва контроллер хати қатъӣ кашидан душвор аст. Агар гӯем, ки намуди зоҳирӣ он чизест, ки корбар мебинад ва контроллер механизмест, ки тавассути он корбар метавонад бо система муошират кунад, ихтилоф вуҷуд дорад. Назоратҳо, ба монанди тугмаҳо дар саҳифаи веб ё клавиатураи виртуалӣ дар экрани телефон, аслан қисми контроллер мебошанд. Аммо онҳо ба корбар мисли ҳама қисмҳои манзара намоёнанд. Дар ин ҷо сухан бештар дар бораи тақсимоти функсионалӣ меравад. Вазифаи асосии интерфейси корбар таъмини ҳамкории корбар бо система мебошад. Ин маънои онро дорад, ки интерфейс танҳо 2 вазифа дорад:- нишон додан ва ба таври қулай нишон додани маълумот дар бораи система ба корбар;
- ворид кардани маълумот ва фармонҳои корбар ба система (интиқоли онҳо ба система);
- Мувофиқи принсипҳои MVC, системаро ба модулҳо тақсим кардан лозим аст.
- Модули муҳимтарин ва мустақил бояд модел бошад.
- Модели асосии система мебошад. Ба шумо қобorяти таҳия ва санҷидани он новобаста аз интерфейс лозим аст.
- Барои ин, дар қадами аввалини сегрегатсияи система, шумо бояд онро ба модел ва интерфейс тақсим кунед.
- Баъдан, бо истифода аз намунаи Observer, мо моделро дар мустақorяти худ мустаҳкам мекунем ва ҳамоҳангсозии интерфейсҳои корбарро ба даст меорем.
- Қадами сеюм ин тақсим кардани интерфейс ба контроллер ва намоиш аст.
- Ҳама чизест, ки барои ворид кардани маълумот аз корбар ба система ба контроллер лозим аст.
- Ҳама чизе, ки маълумотро аз система ба корбар мебарорад, дар назар аст.
GO TO FULL VERSION