Бұл материал «Кәсіпорынның дамуына кіріспе» сериясының бөлігі болып табылады. Алдыңғы мақалалар:
- желі туралы ;
- бағдарламалық қамтамасыз ету архитектурасы туралы ;
- HTTP/HTTPS протоколдары туралы ;
- Maven негіздері туралы ;
- сервлеттер туралы (біз қарапайым веб-қосымшаны жазып жатырмыз) ;
- сервлет контейнерлері туралы .
MVC тарихы
MVC идеяларын 70-жылдардың соңында Xerox PARC-те жұмыс істеген кезде Тригве Реенскауг тұжырымдаған. Ол кездері компьютермен жұмыс істеу ғылыми дәрежесіз және көлемді құжаттарды үнемі зерттемей мүмкін емес еді. Реенскауг өте күшті әзірлеушілер тобымен бірге шешкен мәселе қарапайым пайдаланушының компьютермен әрекеттесуін жеңілдету болды. Бір жағынан өте қарапайым және түсінікті, ал екінші жағынан компьютерді және күрделі қосымшаларды басқаруға мүмкіндік беретін құралдарды жасау қажет болды. Реенскауг «барлық жастағы балаларға арналған» портативті компьютерді - Dynabook, сондай-ақ Alan Kay жетекшілігімен SmallTalk тілін әзірлеген командада жұмыс істеді. Дәл сол кезде және сол жерде достық интерфейс тұжырымдамалары жасалды. Реенскаугтың өз командасымен жұмысы IT саласының дамуына үлкен әсер етті. MVC-ге тікелей қатысы жоқ, бірақ сол оқиғалардың маңыздылығын көрсететін қызықты фактіні көрсетейік. 2007 жылы Apple iPhone тұсаукесерінен кейін Алан Кэй былай деді: «Macintosh шыққанда, Newsweek бұл туралы не ойлайтынымды сұрады. Мен айттым: бұл сынға лайық бірінші дербес компьютер. Тұсаукесерден кейін Стив Джобс келіп: iPhone сынға лайық па? Мен оны бес-сегіз дюйм етіп жасаңыз, сонда сіз әлемді бағындырасыз», - дедім. Үш жылдан кейін, 2010 жылдың 27 қаңтарында Apple 9,7 дюймдік iPad-ты таныстырды. Яғни, Стив Джобс Алан Кэйдің кеңесін тура мағынада ұстанды. Реннскауг жұмыс істеген жоба 10 жылға созылды. Ал MVC туралы оны жасаушылардың алғашқы жарияланымы тағы 10 жылдан кейін жарық көрді. Мартин Фаулер, бағдарламалық жасақтаманың архитектурасы бойынша бірқатар кітаптар мен мақалалардың авторы, ол MVC-ті SmallTalk жұмыс нұсқасынан үйренгенін айтады. Ұзақ уақыт бойы бастапқы көзден MVC туралы ақпарат болмағандықтан, сондай-ақ бірқатар басқа себептерге байланысты бұл тұжырымдаманың көптеген әртүрлі интерпретациялары пайда болды. Нәтижесінде көптеген адамдар MVC-ті дизайн схемасы немесе үлгісі деп санайды. Көбінесе MVC композиттік үлгі немесе күрделі қолданбаларды жүзеге асыру үшін бірге жұмыс істейтін бірнеше үлгілердің тіркесімі деп аталады. Бірақ шын мәнінде, бұрын айтылғандай, MVC ең алдымен әртүрлі үлгілерді пайдалана отырып, әртүрлі тәсілдермен жүзеге асырылуы мүмкін архитектуралық идеялардың/қағидалардың/тәсілдердің жиынтығы болып табылады... Әрі қарай, MVC тұжырымдамасына енгізілген негізгі идеяларды қарастыруға тырысамыз.MVC дегеніміз не: негізгі идеялар мен принциптер
- VC – пайдаланушы интерфейсі бар күрделі ақпараттық жүйелерді құрудың архитектуралық идеялары мен принциптерінің жиынтығы;
- MVC - бұл Model-View-Controller дегенді білдіретін аббревиатура.
1-қадам: қолданбаның бизнес логикасын пайдаланушы интерфейсінен бөліңіз
MVC негізгі идеясы пайдаланушы интерфейсі бар кез келген қолданбаны бірінші жуықтау бойынша 2 модульге бөлуге болады: қолданбаның іскерлік логикасын жүзеге асыруға жауапты модуль және пайдаланушы интерфейсі. Бірінші модуль қолданбаның негізгі функционалдығын жүзеге асырады. Бұл модуль қолданбалы домен үлгісі жүзеге асырылатын жүйенің өзегі болады. MVC тұжырымдамасында бұл модуль біздің M әрпі болады, яғни. үлгі. Екінші модуль пайдаланушыға деректерді көрсетуді және қолданушының қолданбамен әрекеттесу логикасын қоса алғанда, бүкіл пайдаланушы интерфейсін жүзеге асырады. Бұл бөлудің негізгі мақсаты - жүйенің өзегін (MVC терминологиясындағы модель) дербес әзірлеуге және сынауға болатынын қамтамасыз ету. Мұндай бөлуден кейінгі қолданба архитектурасы келесідей болады:Қадам 2. Observer үлгісін пайдаланып, модельдің одан да үлкен тәуелсіздігіне қол жеткізіңіз, сонымен қатар пайдаланушы интерфейстерін синхрондаңыз.
Мұнда біз 2 мақсатты көздейміз:- Үлгінің одан да үлкен тәуелсіздігіне қол жеткізіңіз.
- Пайдаланушы интерфейстерін синхрондаңыз.
3-қадам. Интерфейсті View және Controller деп бөлу
Біз қосымшаны модульдерге бөлуді жалғастырамыз, бірақ иерархияның төменгі деңгейінде. Бұл қадамда пайдаланушы интерфейсі (1-қадамда бөлек модульге бөлінген) көрініс пен контроллерге бөлінеді. Көрініс пен контроллер арасында қатаң сызық сызу қиын. Көрініс - бұл пайдаланушы көретін нәрсе, ал контроллер - пайдаланушы жүйемен әрекеттесе алатын механизм десек, кейбір қарама-қайшылықтар бар. Веб-беттегі түймелер немесе телефон экранындағы виртуалды пернетақта сияқты басқару элементтері контроллердің бөлігі болып табылады. Бірақ олар пайдаланушыға көріністің кез келген бөлігі сияқты көрінеді. Бұл жерде біз функционалдық бөлу туралы көбірек айтып отырмыз. Пайдаланушы интерфейсінің негізгі міндеті – пайдаланушының жүйемен әрекеттесуін қамтамасыз ету. Бұл интерфейсте тек 2 функция бар екенін білдіреді:- пайдаланушыға жүйе туралы ақпаратты көрсету және ыңғайлы түрде көрсету;
- пайдаланушы деректері мен командаларды жүйеге енгізу (оларды жүйеге жіберу);
- MVC принциптеріне сүйене отырып, жүйені модульдерге бөлу қажет.
- Ең маңызды және тәуелсіз модуль модель болуы керек.
- Модель жүйенің өзегі болып табылады. Сізге интерфейске тәуелсіз оны әзірлеу және тексеру мүмкіндігі қажет.
- Ол үшін жүйені бөлудің бірінші қадамында оны модельге және интерфейске бөлу керек.
- Әрі қарай, Observer үлгісін қолдана отырып, біз модельді оның тәуелсіздігінде күшейтеміз және пайдаланушы интерфейстерінің синхрондалуын аламыз.
- Үшінші қадам - интерфейсті контроллерге және көрініске бөлу.
- Пайдаланушыдан жүйеге ақпаратты енгізу үшін тек контроллерге қажет.
- Жүйеден пайдаланушыға ақпаратты шығаратынның бәрі көрінеді.
GO TO FULL VERSION