Програмата MVC на Model-View-Controller - какво е това, характеристики и описание

Програмата Model-View-Controller (MVC) ви позволява да проектирате, внедрявате и тествате всяка част от програмата, независимо от която и да е друга, като запазвате кода. Съхраняване на организиран код означава, че можете бързо да намерите това, което трябва да проверите, бързо да коригирате, модифицирате и добавите нови функции. Това също така означава по-ефективен код и най-добрият начин за повторно използване за по-бързи приложения. Без основателна причина да се използва нова структура, технология или тенденция е трудно за много разработчици, и най-вече защото не могат да намерят мотивация да изследват нова тема. Но не става дума само за MVC, чиято архитектура е много важна, но използването на MVC методи за уеб е необходимо.


Основни типове функционалност на архитектурата

Вероятно едно от най-големите предимства е, че много разработчици разбират и използват MVC структурата за създаване на уеб приложения. Поради тази съгласуваност, управлението на проекти става по-лесно между няколко разработчици. Предимно уеб приложението или част от софтуера следва структурата на MVC. Ако структурата е представена от три основни типа функционалност, то е ясно, че тя е MVC:
  • Кодът на модела обикновено представлява реални неща. Този код може да съдържа необработени данни или да идентифицира основните компоненти на програмата. Например, ако потребител създаде приложение Todo, кодът на модела ще определи каква "задача" и какво е "списък", тъй като те са основните компоненти на това приложение.
  • Преглед или подаване - редакцията на кода се състои от всички функции, които взаимодействат директно с потребителя. Това е код, който прави приложението красиво и по друг начин определя как потребителят вижда и взаимодейства с него.
  • Контролерът действа като връзка между модела и представянето, като взема информация от потребителя и решава какво да прави с него. Това е мозъкът на програмата и свързва модела и представянето. Контролерът разглежда средното ниво “. Той взаимодейства с потребителя, събира данни, свързва се с модела, получава необходимите данни и след това я изпраща за отговор на потребителя.
  • Когато даден потребител извърши действие, той първоначално отива на контролера. Той ще приеме всички данни, например $ _GET, $ _POST променливи в PHP, и ще определи какво да прави с тези данни. Накратко, моделите се отнасят до обработката на данни и разширената функционалност. Ето защо задачата на контролера в този момент е да определи кой модел трябва да бъде извикан и след това да отвори съответната функция в този модел. След извикване на функцията, той ще намери резултата, обикновено в променливата на обкръжението.


    Моделът е проста представа за това какво прави потребителят в приложението. Моделът MVC е това, което трябва да бъде представено в кода, като книга на потребителя, неговата банкова сметка или нещо друго. Моделът е отговорен за съхранението на функции и променливи, които са свързани с това, което представлява. Можете да мислите за логиката на модела като основна концепция за обектно-ориентирано програмиране. Моделите тук са просто "класове". Не се бърка с класовете в контролерите, коитоТехнически, те също са структурирани като класове. И накрая, след като администраторът поиска информация от модела, тя изпраща подаването си. Погледът е подобен на системата за шаблони на програми и може да съществува за определен вид оформление на страницата, мобилен изглед или за конкретна тема. Изгледът ще покаже всички маркировки и CSS, които традиционно се използват при създаването на статична уеб страница.
    MVC е това, което потребителят вижда, когато администраторът го използва. Контролерът просто пренасочва потребителя към правилния външен вид, след като получи данните от модела и пренасочи тази информация към подаването. След това представянето отразява предоставената им информация във формата, в който е структурирана.

    Структура на кодовата организация

    Голямата идея на MVC е, че всяка част от кода има своя собствена цел и тези цели са различни. Някои от кодовете съдържат програмни данни, някои правят приложението приятно, а някои от тях контролират функционалността. Смята се, че това е MVC, програма, която е в състояние да организира основните функции на кода в техните, добре подредени кутии. Файловата структура за използване на MVC е сравнително проста по стандартния начин - има просто папки за представителства, модели и контролери и всички те са свързани помежду си чрез една директория. Разбира се, при всяко уеб приложение, потребителят ще има и други папки и файлове, като например индексен файл и директория за изображенията.
    По-долу е дадена проста структура на MVC директории с някои примери за файлове. Всеки разработчик може да има свои собствени имена, важно е да се направи разумно стандартно споразумение за тях.Следователно файловете в структурата по-долу са само примери.
    Структурата на ASP.NET Core MVC е лесна среда за подаване. Различен отворен код. Той е изключително мащабируем, оптимизиран за използване с Asp Net Core MVC.

    MVC Архитектура

    Разделът модел определя какви данни трябва да съдържат приложението. Ако състоянието на тези данни се промени, тогава моделът обикновено докладва подаването, а понякога и контролера, ако се изисква друга логика за контрол на актуализирания изглед. Например, за програма за пазарска количка, моделът ще посочи кои данни трябва да съдържат елементи в списъка - елемент, цена и други, както и кои елементи вече присъстват. Презентацията определя как да се показват данните на приложението. В списъка с добавки изгледът за подаване ще бъде дефиниран като списък, представен на потребителя, и ще получи данни за показване от модела. Контролерът съдържа логика, която актуализира модела в отговор на потребителския вход на приложението. Например списък за пазаруване може да съдържа формуляри за въвеждане и бутони, които ви позволяват да добавяте или премахвате елементи. Тези действия изискват актуализиране на модела, така че входният сигнал се изпраща на контролера, който след това правилно управлява модела, изпраща актуализирани данни за преглед. Можете също така просто да актуализирате презентацията, за да показвате данни в различен формат, например за промяна на реда в азбучен ред или от най-ниската до най-високата цена. В този случай контролерът може да се справи директно, без да актуализира модела.

    Аналогия на модела в съвременния свят

    MVC е начин да се разбере как работиМрежата е много полезна при планирането, тъй като тя дава на потребителя обща представа за това как идеите му трябва да бъдат организирани от действителния код. Например случаят на заявлението. Това приложение ще позволи на потребителите да създават задачи и да ги организират в списъци. Моделът в приложението ToDo може да определи какво е "задача" и че "списъкът" е набор от задачи. Кодът Изглед ще определи визуално изгледа на ToDo и списъците. Задачите могат да бъдат големи шрифтове или да имат определен цвят. И накрая, контролерът може да определи как потребителят добавя задача или бележки, когато е завършена. Контролерът свързва бутона "Добавяне" към "Модел", когато потребителят кликне върху "Добавяне на задачи", моделът добавя нова задача.

    Само за шаблона за дизайн

    Характеристиките на една MVC програма могат да бъдат показани накратко като пример за адресна книга. Моделът е списък от обекти на човек. Подаването е графичен прозорец на потребителския интерфейс, който показва списък с хора. И контролерът обработва такива действия като "Изтриване на адреса на човек", "Добавяне на адрес на човек", "Изпращане на имейл на човек".
    В горния пример класът Person не знае нищо за подаването. Прозорецът показва на администратора действията на потребителя. В този принцип на разработка на софтуер е присъща ненужна сложност. Сложността води до това, което е скъпо в услуга. Най-лесният начин да направите кода лесен е да премахнете ненужните зависимости. Тогава кодът става по-малко безполезен и по-лесен за поддръжка, така че може да бъде използван отново без промени.

    Основни зависимости на елементите

    Назначаване на контролер - премахване на зависимостта от типа на модела. Например, мениджърът на проекта изисква разработчикът да създаде не само прозорец за контакт, но и такъв, който показва всички контакти само в техните снимки. Снимките трябва да са в оформлението на масата, пет броя на линия. За MVC, тази задача е доста проста. В момента има три класа:
  • Лице.
  • PersonListController.
  • PersonListView.
  • Необходимо е да се създадат два класа: PersonPhotoGridView и PersonPhotoGridController. Класът на човека остава същият и лесно се вмъква в две различни гледни точки. Разработчикът трябва да модифицира класа Person, за да постави новия PersonPhotoGridView и в крайна сметка усложнява модела (пример 3).
    Класът MVC Person може да бъде представен с различни GUI инструменти без никакви промени. Просто създайте контролер и презентация с помощта на нови инструменти, както при стария набор от инструменти. Кодът може да изглежда така.
    В setPicture, този метод е по същество спагети код. MVC Design Template поставя контролен клас между представяния и модел, за да премахне зависимостите от модела. При премахване на зависимости, моделът и, вероятно, външният вид могат да бъдат използвани повторно без промени. Това улеснява въвеждането на нови функции и поддръжка. Потребителите бързо получават стабилен софтуер, компанията спестява пари и разработчиците работят в нормални условия.

    Принцип на работа

    Принципът на MVC е да се раздели приложението на 3Основни части, известни като Модел, Изглед (View) и Контролер. На диаграмата се виждат директни асоциации (червени стрелки) и оттеглени асоциации (сини стрелки). Изтритите асоциации са тези, които може да изглеждат очевидни от гледна точка на потребителя, а не на базата на действителния дизайн на софтуера. Лесен начин да изпълните условието:
  • Потребителят взаимодейства с подаването - чрез кликване върху линка или изпращане на формуляра.
  • Контролерът обработва потребителския вход и предава информация на модела.
  • Моделът получава информация и актуализира състоянието си, добавя данни към базата данни, например изчислява днешната дата.
  • Браузърът проверява състоянието на модела и отговаря съответно, като изброява наскоро въведените данни.
  • Изгледът търси следващото взаимодействие с потребителя.
  • Това е проста концепция - бизнес логика - изчисляване на логическите процеси на приложението. Например, бизнес логиката на обикновен календар трябва да изчисли коя дата, ден от седмицата и всеки ден от месеца, ако искате да подадете всички дни от този месец. Или, за да стартирате уеб съдържание, използвайки Spring MVC, което ви позволява да създадете приложение със статична начална страница, приема HTTP GET заявки.

    Придържане към принципа DRY

    Много рамки на MVC използват шаблонна система, за да гарантират съответствие с принципа DRY, което го прави много удобно за повторно използване на кода, без да е необходимо да се пренаписва. Има MVC рамки, които работят върху Smarty или използват свои собствени шаблонови механизми. Едно просто предупреждение е, че някои пакети с шаблониимат доста сложен синтаксис - програмистът трябва да ги провери, преди да започне да се развива. Смята се, че MVC е друго много добро изпълнение на философията на DRY (Не се повтаря). По същество DRY използва Ruby on Rails и няколко други реализации, а идеята е, че програмистът пише нещо веднъж и веднъж, използвайки кода. Принципът DRY се определя като "всяка част трябва да има едно, недвусмислено, авторитетно представяне в системата". Правилното прилагане на DRY означава, че промяната на един елемент на системата не променя несвързани елементи, което е съвсем логично.

    Конвенция за конфигуриране

    Това е парадигма на дизайна, която по същество се опитва да премахне броя на решенията, които разработчикът трябва да направи. Това се постига чрез създаване на структура със споразумения, които обикновено изискват всички елементи. Разработчикът трябва само да промени това, което е наистина необходимо. Много е просто. Например, за форма, съдържаща елементи, които винаги са необходими и имат едни и същи стойности. Формулярът има маркер, който определя действието, метода, името, id enctype. Например, ако не се налага да променяте нищо, лесно е да получите името на формуляра, идентификатора и действието от URL адреса. Можете също да инсталирате всички POST методи, освен ако не е отбелязано друго. Прилагането на тази идея към всички елементи прави създаването на такъв тип програма много бързо, лесно и разбираемо. MVC е наистина добър начин да започнете да произвеждате чист, мащабируем, мощен и бърз код за по-малко време с минимални усилия. Някои MVC структури не включват всички тези функции, повечето от тях съдържат самоедин или два

    Предимства и недостатъци на метода

    Шаблонът за проектиране на MVC се използва при разработването на софтуер, чийто основен принцип се основава на идеята, че логиката на програмата трябва да бъде отделена от нейното представяне. Казано по-просто, това е най-добрият начин да се отдели логиката на програмата от дисплея. Както всеки метод на програмиране, той има своите предимства и недостатъци. Предимства на MVC:
  • Бърз процес на развитие, поддържа бързо и паралелно развитие.
  • С MVC, един програмист може да работи в шоуто, а другият може да работи върху контролера, за да създаде бизнес логика.
  • Разработеното с неговото приложение приложение е три пъти по-бързо от приложението, разработено с други шаблони за разработка.
  • ​​
  • Способност за предоставяне на няколко вида.
  • Можете да създадете множество изгледи в MVC.
  • Дублираното копиране е много ограничено, тъй като разделя данните и логиката от дисплея.
  • Подкрепа за асинхронна технология, която помага на разработчиците бързо да разработят приложение за сваляне.
  • Промяната не засяга целия модел, тъй като част от модела не зависи от частта от изгледите. Следователно, всички промени в Модела няма да засегнат цялата архитектура.
  • Шаблонът .NET MVC връща данни без използване на форматиране, така че същите компоненти могат да бъдат използвани и извикани за използване с всеки интерфейс.
  • С тази платформа е много лесно да се проектират SEO оптимизирани URL адреси, за да получавате повече посещения от конкретно приложение.
  • MVC недостатъци:
  • Повишена сложност.
  • Неефективен достъп до данни.
  • Сложността на използването на MVC с модерен потребителски интерфейс.
  • Изисква множество програмисти.
  • Необходимо е познаване на няколко технологии. Разработчикът знае кода на клиентската страна и html кода.
  • Създаване на първото заявление

    Можете да разработите примери за ASP.NET MVC с подходяща версия на средата Visual Studio и .NET, като използвате MVC v522017 Community и платформата .NET 4.6. Как да стартирате:
  • Отворете Visual Studio 2017 и още: Файл - & gt; Създайте & gt; Проектът
  • Разширете Visual C # и Web възела от лявата страна и след това изберете asp net MVC в средната секция.
  • Въведете името на вашия проект MyMVCApplication, можете да посочите всяко подходящо име за вашето приложение.
  • Задайте местоположението на проекта, като щракнете върху бутона "Преглед" и след това "OK".
  • Прозорецът "New Web Application" намира ядрото asp MVC.
  • Променя удостоверяването чрез натискане на съответния бутон.
  • Щракнете върху OK, за да разрешите на MVC да създаде проект, използвайки шаблона.
  • Първото заявление е готово.
  • Стартирайте проекта в режим на отстраняване на грешки F5 или Ctrl + F5 без отстраняване на грешки. Проектът на MVC рамката съдържа JavaScript и CSS bootstrap 3.0 файлове по подразбиране.
    По този начин можете да създавате отзивчиви уеб страници. Този отзивчив интерфейс ще промени външния си вид въз основа на размера на екрана на различните устройства. Например горната лента на менюто ще бъде променена на мобилни устройства. Така че, лесно е да създадете първото си ядро ​​MVC приложение с Visual Studio 2013. MVC е основата заПрограмиране и организиране на програмни файлове. За да обозначат идеята за това, как кодът трябва да бъде организиран за неговата функция, разработчиците ще създават папки за всяка част, което осигурява отправна точка за превеждане на идеи в код и улеснява връщането към кода. Мисленето за това как кодът взаимодейства с друг код е важна част от програмирането, а изучаването на начините за сътрудничество с други разработчици е важно умение. Прекарвайки време, за да разберем как приложението се вписва в структурата на MVC php, програмистът увеличава уменията си за разработчици.

    Свързани публикации