Відповіді:
N-ярусна архітектура зазвичай має кожен шар, розділений мережею. IE, презентаційний шар знаходиться на деяких веб-серверах, потім вони розмовляють із серверами додатка через мережу для ділової логіки, потім спілкуються з сервером баз даних, знову по мережі, і, можливо, сервер додатків також звертається до деяких віддалених служб ( скажімо, Авторизація.net для обробки платежів).
MVC - це схема дизайну програмування, де різні частини коду відповідають за представлення моделі, перегляду та контролера в певній програмі. Ці дві речі пов'язані між собою, оскільки, наприклад, рівень Модель може мати внутрішню реалізацію, яка викликає базу даних для зберігання та отримання даних. Контролер може перебувати на веб-сервері та віддалено викликати додатків для отримання даних. MVC абстрагує деталі того, як реалізується архітектура програми.
N-рівень якраз і стосується фізичної структури реалізації. Ці двоє іноді плутають, оскільки дизайн MVC часто реалізується за допомогою архітектури N-ярусів.
Якщо трирівнева конструкція була такою:
Client <-> Middle <-> Data
скоромовкою MVC буде:
Middle
^ |
| v
Client <- Data
Це означає, що:
PS Клієнт буде цілком Подивитися і Середній контролер
Це те, що кажуть про n-ярусну архітектуру
На перший погляд, три яруси можуть здатися схожими на концепцію MVC (Model View Controller); однак топологічно вони різні. Основним правилом трирівневої архітектури є те, що рівень клієнта ніколи не спілкується безпосередньо з рівнем даних; у трирівневій моделі вся комунікація повинна проходити через проміжний рівень. Концептуально трирівнева архітектура є лінійною. Однак архітектура MVC трикутна: Перегляд надсилає оновлення до Контролера, Контролер оновлює Модель, а Перегляд оновлюється безпосередньо з Моделі.
Єдина схожість полягає в тому, що два візерунки мають три діаграми у своїх діаграмах. Принципово вони абсолютно різні за своїм використанням. Якщо насправді, це не звичайний вибір між тим, який шаблон використовувати, але обидва шаблони можна використовувати разом. Ось хороше порівняння двох: http://allthingscs.blogspot.com/2011/03/mvc-vs-3-tier-pattern.html
Основним правилом трирівневої архітектури є те, що рівень клієнта ніколи не спілкується безпосередньо з рівнем даних; у трирівневій моделі вся комунікація повинна проходити через проміжний рівень.
Це лінійна архітектура. Тут вирішується питання про передачу інформації між користувачем та базою даних. Якщо MVC - це трикутна архітектура: Перегляд надсилає оновлення до Контролера, Контролер оновлює Модель, а Перегляд оновлюється безпосередньо з Моделі. Тут розглядаються питання, як користувальницький інтерфейс управляє компонентами на екрані.
@Cherry Middle посуд працює більше, як обробник запитів або перенаправлення в MVC Pattern.
Я хотів би трохи пояснити MVC, на мою думку Controller Model View працює так.
Це все про MVC, що я знаю.
Дайте собі відпочити. І не обмежуйте себе певними зразками, коли вирішуєте реальні проблеми. Просто пам’ятайте деякі загальні принципи, один з яких - ВІДДІЛЕННЯ СПІВ .
Крім лінійної, ще одна основна відмінність, яка недостатньо підкреслюється тут, полягає в тому, що в N-ярусної моделі N не обов'язково є 3-рівневою! Найчастіше реалізується у вигляді трьох рівнів (презентація, додаток, дані), середній рівень має два підрівні (бізнес-логіка та доступ до даних). Також модель в MVC може містити як дані, так і бізнес-логіку для маніпулювання даними, тоді як вони будуть в окремих рівнях n-ярусу.
N-ярусну архітектуру найкраще визначити за допомогою діаграми розгортання.
Архітектуру MVC найкраще визначити за допомогою діаграми послідовності.
2 не однакові і не пов'язані між собою, і ви можете поєднати дві архітектури разом. Багато компаній зробили кроки для створення архітектури N Tier'd не лише для розгортання та масштабування, але і для повторного використання коду.
Наприклад, об’єкти Вашої суб'єкта господарювання, можливо, потребують використання настільного додатка, веб-сервісу для клієнта, веб-додатка або мобільного додатка. Просто використання підходу MVC не допоможе вам взагалі нічого використовувати.
Джеррі: Ось простий приклад того, як вони пов'язані між собою:
Рівень 1 - складається з моделей, які спілкуються з Рівнем 2 через якусь послугу мережі або подібні, контролери для обробки вхідних даних, обчислень та інших речей, важливих для представлення даних. І він містить самі погляди, звичайно - якими може бути графічний інтерфейс у настільному додатку або веб-інтерфейс у веб-додатку.
Рівень 2 - Містить якусь послугу чи інший спосіб отримання повідомлень від Рівня 1. Не / не повинен знати про рівень 1, тому може відповідати лише на дзвінки зверху - ніколи не просити речі сам. Також містить всю бізнес-логіку.
Рівень 3 - Містить доменну модель, об'єктне представлення бази даних та всю логіку для спілкування та оновлення записів бази даних.
У трирівневій моделі вся комунікація повинна проходити через середній рівень. Концептуально трирівнева архітектура є лінійною. Однак архітектура MVC [model-view-controller] MVC є трикутною: представлення надсилає оновлення до контролера, контролер оновлює модель, а представлення оновлюється безпосередньо з моделі.