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."