Разлика между MVC и MVP

MVC срещу MVP

Моделът View View Controller (известен още като MVC) е модел с архитектурно естество, използван специално в софтуерното инженерство. Този конкретен модел се използва за изолиране на това, което е известно като "логика на домейна" - което е просто логиката на приложение за потребителя. Той е изолиран от въвеждане и представяне (известен като GUI) и позволява независимо развитие.

Model View Presenter (известен също като MVP) е директна пермутация на MVC. Това е софтуерен модел (по-конкретно, модел на дизайн на потребителски интерфейс), създаден специално за подпомагане на тестването на автоматизирани единици и подобряване на това, което се нарича разделяне на проблемите в логиката на представяне. Разделянето на проблемите е основно процес, при който компютърна програма се разделя на различни функции, които не се припокриват по отношение на начина им на функциониране.

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

Моделната част на MVP дефинира данните, които трябва да бъдат показани (или действащи) в потребителския интерфейс. Изгледната част показва данните, дефинирани в модела, и изпраща потребителски подканени команди (известни като събития) на презентатора (който ще действа по тези данни). Тогава презентаторът действа върху модела и погледа на модела. Като такъв, той е в състояние да извлича данни от хранилища (намерени в модела), да продължава данните и да ги форматира, за да бъдат лесно показани в изгледа.

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

Резюме:

1. MVC е архитектурен модел, който изолира логиката на домейна; MVP е потомък на MVC, създаден да помогне за тестване на автоматизирани единици и да подобри разделянето на проблемите.

2. По отношение на MVC моделът представя данните, изгледът превръща модела в удобно за потребителя взаимодействие и контролерът получава вход; по отношение на MVP, моделът определя данните, изгледът го показва, а презентаторът действа върху модела и неговия изглед.