Model–view–controller

Model–view–controller (обично познат како MVC ) е шаблон за дизајн на софтвер https://www.youtube.com/watch?v=o_TH-Y78tt4&t=1667 најчесто користен за развој на кориснички интерфејси што ја дели логиката на поврзаната програма на три меѓусебно поврзани елементи. Ова е направено за да се одделат внатрешните претстави на информациите од начинот на презентирање и прифаќање на информацијата од корисникот.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."

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

 Компоненти 

 Model - модел
 Централната компонента на шаблонот. Тоа е динамична структура на податоци на апликацијата, независна од корисничкиот интерфејс.Burbeck, Steve (1992) Applications Programming in Smalltalk-80:How to use Model–View–Controller (MVC) Ги претставува податоците што се во апликацијата односно ги моделира, ги дефинира бизнис правилата за менување и управување со податоците. Обични класи во кодот.
 View - приказ
 Задолжен е за тоа како ќе се прикажува апликацијата, корисничкиот интерфејс. Тоа се предлошки кој ќе генерираат HTML во прелистувач.
 Controller - управувач
 Прифаќа влез и го претвора во команди за моделот или приказот. Односно тоа е средината и е одговорен за комуникација. Знае да комуницира со model и view. Класи кој се состојат од методи.Simple Example of MVC (Model–View–Controller) Architectural Pattern for Abstraction

Покрај поделбата на апликацијата на овие компоненти, шаблонот за дизајн model-view-controller ги дефинира интеракциите меѓу нив.Buschmann, Frank (1996) Pattern-Oriented Software Architecture.

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

Како и кај другите шаблони за дизајн на софтвер, MVC го изразува „јадрото на решението“ на проблемот, притоа дозволувајќи му да биде прилагоден за секој систем.Gamma, Erich et al. (1994) Design Patterns Посебните дизајни на MVC може значително да се разликуваат од традиционалниот опис.Moore, Dana et al. (2007) Professional Rich Internet Applications: Ajax and Beyond: "Since the origin of MVC, there have been many interpretations of the pattern. The concept has been adapted and applied in very different ways to a wide variety of systems and architectures."

 Историја 
Еден од основните согледувања во раниот развој на графички кориснички интерфејси, MVC стана еден од првите пристапи за опишување и имплементација на софтверски конструкции во однос на нивните одговорности.Model–View–Controller History. C2.com (2012-05-11). Retrieved on 2013-12-09.

Тригве Реенскауг го воведе MVC во Smalltalk -79 додека беше во посета на Истражувачкиот центар Xerox Palo Alto (PARC) Notes and Historical documents from Trygve Reenskaug, inventor of MVC."A note on DynaBook requirements", Trygve Reenskaug, 22 March 1979, SysReq.pdf. во 1970-тите. Во осумдесеттите години од минатиот век, Џим Алтоф и другите имплементираа верзија на MVC за библиотеката во класата Smalltalk-80. Само подоцна, еден напис во 1988 година во „Патувањата за технологија на објекти“ (JOT) го изрази MVC како општ концепт. Also published as "A Description of the Model–View–Controller User Interface Paradigm in the Smalltalk-80 System" (Report), ParcPlace Systems; Retrieved 2012-06-05.

Моделот MVC последователно еволуираше,The evolution of MVC and other UI architectures from Martin Fowler. доведувајќи до варијанти како 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.

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

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

 Поврзано 
 Проектирање на програмска опрема

 Наводи 

Категорија:Category:Семрежни прилози