Model–view–controller

From Wikipedia, the free encyclopedia

Model–view–controller
Remove ads

Model–view–controller (обично познат како MVC ) е шаблон за дизајн на софтвер [1] најчесто користен за развој на кориснички интерфејси што ја дели логиката на поврзаната програма на три меѓусебно поврзани елементи. Ова е направено за да се одделат внатрешните претстави на информациите од начинот на презентирање и прифаќање на информацијата од корисникот.[2][3]

Thumb
Дијаграм на интеракција во рамките на моделот MVC

Првично е наменет за десктоп графички кориснички интерфејси (GUI), но стана популарен со дизајнирање семрежни прилози и таму најмогу се користи.[4] Популарните програмски јазици како JavaScript, Python, Perl, Object Pascal/Delphi, Ruby, PHP, Java, C#, Swift и Elixir имаат MVC рамки што се користат за развој на веб или мобилни апликации.

Remove ads

Компоненти

Model - модел
Централната компонента на шаблонот. Тоа е динамична структура на податоци на апликацијата, независна од корисничкиот интерфејс.[5] Ги претставува податоците што се во апликацијата односно ги моделира, ги дефинира бизнис правилата за менување и управување со податоците. Обични класи во кодот.
View - приказ
Задолжен е за тоа како ќе се прикажува апликацијата, корисничкиот интерфејс. Тоа се предлошки кој ќе генерираат HTML во прелистувач.
Controller - управувач
Прифаќа влез и го претвора во команди за моделот или приказот. Односно тоа е средината и е одговорен за комуникација. Знае да комуницира со model и view. Класи кој се состојат од методи.[6]

Покрај поделбата на апликацијата на овие компоненти, шаблонот за дизајн model-view-controller ги дефинира интеракциите меѓу нив.[7]

  • Моделот е одговорен за управување со податоците на апликацијата. Тој прима кориснички влез од контролорот.
  • Приказот(view) значи презентација на моделот во одреден формат.
  • Контролорот реагира на влезот на корисникот и извршува интеракции на објектите на моделот на податоци. Контролорот го прима влезот, по избор го потврдува и потоа го пренесува влезот на моделот.

Како и кај другите шаблони за дизајн на софтвер, MVC го изразува „јадрото на решението“ на проблемот, притоа дозволувајќи му да биде прилагоден за секој систем.[8] Посебните дизајни на MVC може значително да се разликуваат од традиционалниот опис.[9]

Remove ads

Историја

Еден од основните согледувања во раниот развој на графички кориснички интерфејси, MVC стана еден од првите пристапи за опишување и имплементација на софтверски конструкции во однос на нивните одговорности.[10]

Тригве Реенскауг го воведе MVC во Smalltalk -79 додека беше во посета на Истражувачкиот центар Xerox Palo Alto (PARC) [11][12] во 1970-тите. Во осумдесеттите години од минатиот век, Џим Алтоф и другите имплементираа верзија на MVC за библиотеката во класата Smalltalk-80. Само подоцна, еден напис во 1988 година во „Патувањата за технологија на објекти“ (JOT) го изрази MVC како општ концепт.[13]

Моделот MVC последователно еволуираше,[14] доведувајќи до варијанти како hierarchical model–view–controller(HMVC),model–view–adapte(MVA), model–view–presenter(MVP)model–view–viewmodel(MVVM), и други кои го прилагодија MVC на различни контексти.

Употребата на моделот MVC во семрежни прилози експлодира во популарност по воведувањето на NeXT е WebObjects во 1996 година, која првично беше напишано во Objective-C (кои позајмиле во голема мера од Smalltalk) и помогна спроведуваат принципите MVC. Подоцна, моделот MVC стана популарен кај развивачите на Java кога WebObjects беше пренесен во Java. Подоцнежните рамки за Java, како што е Spring Framework (објавен во октомври 2002 година), ја продолжија силната врска помеѓу Java и MVC. Воведувањето на рамките Django (јули 2005 година, за Python) и Rails (декември 2005 година, за Ruby), и двајцата имаа силен акцент на брзото распоредување, ја зголеми популарноста на MVC надвор од традиционалното опкружување на претпријатијата во кое одамна е популарно. Веб-рамките на MVC сега имаат големи удели на пазарот во однос на веб- алатките што не се MVC.

Remove ads

Користење во семрежни прилози

Иако првично беше развиен за десктоп компјутери, MVC е широко прифатен како дизајн за апликации на World Wide Web на главните програмски јазици. Создадени се неколку веб-рамки што го применуваат моделот. Овие софтверски рамки се разликуваат во нивните толкувања, главно во начинот на кој одговорностите на MVC се поделени помеѓу клиентот и опслужувачот.

Некои веб MVC рамки имаат тенок пристап на клиент кој го става речиси целиот модел, логиката на прегледот и контролорот на опслужувачот. Во овој пристап, клиентот испраќа барања за хиперврска или испраќања на форми до контролорот, а потоа добива целосно и тековно мрежно место (или друг документ) од приказот; моделот постои целосно на опслужувачот.

Поврзано

Наводи

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads