Model–view–controller

Վիքիպեդիայից՝ ազատ հանրագիտարանից

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

Նկարագրություն[խմբագրել | խմբագրել կոդը]

A typical collaboration of the MVC components.

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

Բաղկացուցիչ մասեր[խմբագրել | խմբագրել կոդը]

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

Աշխատանք[խմբագրել | խմբագրել կոդը]

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

Օգտագործումը Վեբ համակարգերում[խմբագրել | խմբագրել կոդը]

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

Ծանոթագրություններ[խմբագրել | խմբագրել կոդը]

  1. "More deeply, the framework exists to separate the representation of information from user interaction." The DCI Architecture: A New Vision of Object-Oriented Programming - Trygve Reenskaug and James Coplien - March 20, 2009.
  2. Burbeck (1992): "... the user input, the modeling of the external world, and the visual feedback to the user are explicitly separated and handled by three types of object."
Վիքիպահեստն ունի նյութեր, որոնք վերաբերում են «Model–view–controller» հոդվածին։