2010-05-16 2 views
24

В чем отличие разработки веб-сайта в MVC и трехуровневой или N-уровневой архитектуре?В чем отличие разработки веб-сайта в MVC и 3-уровневой или N-уровневой архитектуре?

Какой из них лучше? Каковы плюсы и минусы?

+0

Возможные дубликатами: http://stackoverflow.com/questions/899803/have-i-implemented-an-tier-application-with-mvc-correctly?rq=1, HTTP : //stackoverflow.com/questions/1135056/mvc-application-how-does-mult-tier-architecture-fit-in? rq = 1, http://stackoverflow.com/questions/14451444/mvc-multi-tier -mobile-application –

ответ

13

Они почти одинаковы, однако в 3-уровневом верхний уровень (презентация) никогда напрямую не связывается с нижним уровнем (постоянством данных).

В модели-виде-контроллере теоретически предполагается, что Модель «уведомляет» вид, который он изменил, чтобы View мог обновляться. Однако это обычно не проблема в большинстве веб-приложений, поскольку они не имеют гражданства. Я не уверен, что в каких-либо известных PHP MVC-архитектурах есть Views, которые напрямую взаимодействуют с моделями или наоборот, но если они этого не делают, было бы правильно сказать, что они фактически являются 3-уровнями.

Википедия говорит:

На первый взгляд, эти три яруса могут показаться похожим на MVC (Model View Controller) концепции; однако топологически они разные. A фундаментальное правило в трехуровневой архитектуре - это клиентский уровень никогда напрямую связывается с данными уровень; в трехуровневой модели все сообщения должны проходить через уровень промежуточного уровня . Концептуально трехъярусная архитектура является линейной. Тем не менее, архитектура MVC равна треугольной: просмотр отправляет обновления для Контроллер, контроллер обновляет Модель, и представление обновляется непосредственно из модели.

Источник: Wikipedia: Multitier architecture

+0

В большинстве современных MVC-моделей модель никогда не обменивается данными с представлением. Все проходит через контроллер. – anemaria20