Model–view–controller

Model–view–controller (MVC, «մոդել-տեսք-կառավարիչ»)՝ ծրագրային նախագծման ձևանմուշ է, որի նպատակն է մշակել ծրագրեր, որոնք պարունակում են օգտագործողի ինտերֆեյս ()։ Նրա նպատակն է ծրագիրը բաժանել 3 մասի, որը կապահովի տվյալների մշակման անկախությունը օգտագործողի ինտերֆեյսից։

Նկարագրություն 

Ինչպես և բոլոր նախագծման ձևանմուշները՝ MVC-ն ներկայացնում է միայն խնդրի լուծման սկզբունքը, իսկ արդեն յուրաքանչյուր կոնկրետ խնդրի լուծուման համար կարող են կիրառվել MVC-ի ձևափոխված տարբերակներ։ MVC ճարտարապետությամբ համակարգերը նաև հեշտ է թեստավորել։ Քանի որ համակարգի ամբողջ բիզնես տրամաբանությունը գտնվում է Մոդելների մեջ, նրանց հեշտ է վերագործարկել և ստուգել նրանց աշխատանքը թեստային ծրագրում։

Բաղկացուցիչ մասեր 
 Մոդել () - ապահովում է ծրագրի աշխատանքը տվյալների հետ, բիզնես տրամաբանությունը
 Տեսք/Ներկայացում () - պատասխանատու է ծրագրի արտաքին տեսքի կառուցման համար, որի հետ աշխատում է օգտագործողը
 Կառավարիչ () - ապահովում է կապը Մոդելի և Տեսքի միջև

Աշխատանք 
 Կառավարիչը () ստանում է հրահանգը սովորաբար Տեսքից, որոշում է որ Մոդելին կանչի հրամանը մշակելու համար, Մոդելի աշխատանքից հետո կանչում է համապատասխան Տեսքը, փոխանցելով նրան Մոդելը։
 Մոդել տրամադրում է մեթոդներ տվյալների հետ աշխատանքի համար։ Նրա որոշակի մեթոդի կանչի դեպքում այն կարող է տվյալներ ներմուծել կամ ստանալ օրինակ՝ տվյալների բազայից կամ կատարել ավելի բարդ գործողություններ տվյալների հետ։
 Տեսքը ստանում է համապատասխան Մոդելը, որի տվյալների հիման վրա կառուցում է օգտագործողի ինտերֆեյսը։

Օգտագործումը Վեբ համակարգերում 
MVC-ն լայն կիրառություն ունի Վեբ համակարգերի ստեղծման մեջ։ Գոյություն ունեն բազմաթիվ framework-ներ MVC կառուցվածքով ինչպիսիք են՝ Laravel, Codeigniter և այլն։ Նախկինում MVC-ն կիրառվում էր միայն backend-ում իսկ Տեսքը () հանդես էր գալիս հասարակ HTML էջերի տեսքով։ Այժմ MVC-ն լայն տարածում է գտել նաև frontend-ում ի շնորհիվ այնպիսի frontend framework-ների ինչպիսին են՝ AngularJs, ReactJS և այլն։ Վերոհիշյալ կառուցվածքներում հիմնականում backend-ը վերադարձնում է տվյալները JSON տեսքով HTML-ի փոխարեն։ Frontend-ը ինիցիալիզացնում է իր սեփական MVC-ի Մոդելը backend-ից ստացված տվյալներով և շնորհիվ իր սեփական MVC-ի ծրագրի բիզնես տրամաբանության մի մեծ մաս վերցնում է իր վրա՝ բեռնաթափելով backend-ը։ Վերոհիշյալ կառուցվածքում ըստ էության backend-ը վեր է ածվում API տրամադրող ծառայության, որը կարող է վերաօգտագործվել նաև այլ frontend-ների, ինչպես նաև բջջային հավելվածների համար։

Ծանոթագրություններ 

Ծրագրավորման ձևանմուշներ