Архитектура MVC Vs n-level

Мне было интересно, какая именно разница между MVC (который является архитектурным шаблоном) и n-уровневой архитектурой для приложения. Я искал его, но не нашел простого объяснения. Может быть, я немного наивна для концепций MVC, поэтому, если кто-нибудь сможет объяснить разницу, тогда это будет здорово.

веселит

Ответ 1

Архитектура N-уровня обычно имеет каждый слой, разделенный сетью. И.Е. уровень представления находится на некоторых веб-серверах, а затем он обращается к серверным серверам приложений по сети для бизнес-логики, а затем говорит о сервере базы данных снова по сети, и, возможно, сервер приложений также обращается к некоторым удаленным службам (скажем, Authorize.net для обработки платежей).

MVC - это шаблон проектирования программирования, в котором различные части кода отвечают за представление модели, представления и контроллера в некоторых приложениях. Эти две вещи связаны между собой, поскольку, например, слой модели может иметь внутреннюю реализацию, которая вызывает базу данных для хранения и извлечения данных. Контроллер может находиться на веб-сервере и удаленно обращаться к службам приложений для извлечения данных. MVC абстрагирует детали того, как реализована архитектура приложения.

N-уровень просто относится к физической структуре реализации. Эти два иногда путают, потому что проект MVC часто реализуется с использованием архитектуры N-уровня.

Ответ 2

Если трехуровневая конструкция была такой:

Client <-> Middle <-> Data

MVC-patter будет:

     Middle
     ^    |
     |    v
Client <- Data

Значение:

  • в трехуровневом эквиваленте связь между слоями двунаправлена ​​и всегда проходит через средний уровень
  • в эквиваленте MVC сообщение находится в однонаправленном режиме; мы могли бы сказать, что каждый "слой" обновляется слева и, в свою очередь, обновляет его справа, где "левый" и "правый" являются просто иллюстративными.

P.S. Клиент будет View и Middle the Controller

Ответ 3

Это то, что Wikipedia%2520Icon.jpg говорит о n-level архитектура

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

Ответ 4

Единственное сходство состоит в том, что два шаблона имеют три окна в своих диаграммах. По сути, они совершенно разные в своих целях. Если это факт, обычно нет выбора между тем, какой шаблон использовать, но оба шаблона можно использовать вместе. Вот хорошее сравнение двух: http://allthingscs.blogspot.com/2011/03/mvc-vs-3-tier-pattern.html

Ответ 5

@Cherry Среднее изделие работает скорее как обработчик запроса или перенаправитель в шаблоне MVC.

Я хотел бы немного рассказать о MVC, согласно мне Model View Controller работает так.

  • Клиент инициирует сеанс, запрашивая любую службу.
  • Этот запрос получен и обрабатывается контроллером (обработчик запроса, перенаправитель и т.д.).
  • Контроллер обрабатывает базовую информацию по запросу и перенаправляет ее на соответствующую модель, которая может заполнить запрос данных.
  • Модель заполнит запрос в соответствии с параметрами, переданными контроллером, и отправьте результаты на контроллер. (Примечание: здесь мне нравится очищать, что данные напрямую не возвращаются клиенту в истинную архитектуру MVC, а заполняются и возвращаются контроллеру.)
  • Контроллер, чем отправить эти данные в View (Client).
  • Клиент имеет запрошенную услугу перед ним.

Что все о MVC, что я знаю.

Ответ 6

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

Архитектура лайнера. Это касается вопроса о том, как передавать информацию между пользователем и базой данных. Где MVC представляет собой треугольную архитектуру: View отправляет обновления контроллеру, контроллер обновляет модель, и представление обновляется непосредственно из модели. Это касается вопросов о том, как пользовательский интерфейс управляет компонентами на экране.

Ответ 7

Помимо линейности, еще одно существенное отличие, которое недостаточно подчеркивалось здесь, заключается в том, что в модели N-уровня N не обязательно 3 уровня! Он чаще всего реализуется как три уровня (презентация, приложение, данные), причем средний уровень имеет два подэтапа (бизнес-логика и доступ к данным). Кроме того, модель MVC может содержать как данные, так и бизнес-логику для манипулирования данными, тогда как они будут находиться в разных уровнях в n-уровне.

Ответ 8

Дайте себе перерыв. И не ограничивайте себя определенными шаблонами при решении реальных проблем. Просто запомните некоторые общие принципы, одним из которых является ОТДЕЛЕНИЕ КОНЦЕРН.

Ответ 9

Архитектура N-уровня лучше всего определять с использованием диаграммы развертывания.

Архитектура MVC лучше всего определять с использованием диаграммы последовательности.

2 не являются одинаковыми и не связаны между собой, и вы можете объединить две архитектуры вместе. Многие компании предприняли шаги по созданию архитектуры N Tier'd для не только развертывания и масштабируемости, но и для повторного использования кода.

Например, ваши объекты Business Entity могут потребоваться для использования настольным приложением, веб-службой, предоставляемой клиенту, веб-приложению или мобильному приложению. Просто использование подхода MVC не поможет вам вообще что-либо использовать.

Ответ 10

Заключение: N-уровень - это архитектура, MVC - шаблон проектирования. Они являются одним и тем же метафором, применяемым в двух разных областях.

Ответ 11

Джерри: Вот простой пример того, как эти два связаны:


Уровень 1. Состоит из моделей, которые взаимодействуют с Уровнем 2 через какой-либо сетевой сервис или аналогичные контроллеры для обработки проверки ввода, вычислений и других вещей, относящихся к представлениям. И он содержит сами представления, конечно, - это может быть GUI в настольном приложении или веб-интерфейсе в веб-приложении.


Уровень 2. Содержит какой-то сервис или другой способ получения сообщений из Уровня 1. Не должен/не должен знать о Уровне 1, поэтому он может отвечать только на вызовы сверху - никогда не спрашивать вещи сами по себе. Также содержит всю бизнес-логику.


Уровень 3. Содержит модель домена, представление объекта базы данных и всю логику для связи и обновления записей базы данных.

Ответ 12

В трехуровневой модели все сообщения должны проходить через средний уровень. Концептуально трехуровневая архитектура линейна. Однако MVC-архитектура [model-view-controller] имеет треугольную форму: представление отправляет обновления контроллеру, контроллер обновляет модель, и представление обновляется непосредственно из модели.

Ответ 13

Проще говоря; MVC может быть разделен следующим образом: M (odel) = запросы к базе данных, V (iew) = html/css/js/(может содержать php (код языка программирования), но это будет плохая идея), C (ontroller) = php классы и функции. Я считаю, что n-уровень означает, что приложения распространяются и размещаются на разных серверах (т.е. Видео на одном сервере, музыка на сервере два, запросы на сервере x и т.д.). поэтому ваш сайт может быть на домене .com, а ваши видео находятся в (домене назад) niamod.com. посмотрите на CodeIgniter, чтобы узнать больше о MVC (его легко/интересно узнать).