Чем отличается разработка веб-сайта в MVC и 3-уровневой или N-уровневой архитектуре? - PullRequest
24 голосов
/ 16 мая 2010

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

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

1 Ответ

13 голосов
/ 16 мая 2010

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

В модели-view-controller теоретически предполагается, что Модель "уведомляет" представление о том, что оно изменилось, чтобы представление могло обновляться. Тем не менее, это обычно не проблема в большинстве веб-приложений, потому что они не имеют состояния. Я не уверен, есть ли в каких-либо известных архитектурах PHP MVC представления, которые напрямую взаимодействуют с моделями или наоборот, но если они этого не делают, было бы правильно сказать, что они на самом деле 3-уровневые.

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

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

Источник: Википедия: Многоуровневая архитектура

...