Це як би запитати, яка різниця між яблуком та яблучним ядром. Ці дві архітектури не є заміною одна для одної. Я вважаю, що більш точним є те, що 3-ярусна архітектура збільшує MVC.
Архітектура MVC
Моделі: вони представляють "речі" у вашій програмі. Цей шар останнім часом трохи розмився, як я поясню пізніше.
Перегляди: Інтерфейс користувача. Те, з чим взаємодіє користувач.
Контролери: код програмування, який відповідає користувачеві та на зміни в шарі моделі
3-ярусна архітектура
Завдяки трирівневій архітектурі у вас є шари з різними обов'язками.
Послуги користувачів: (або "послуги" загалом) Цей шар стосується скоординування пошуку та модифікацій рівня "модель". Тут виконуються складні багатоступінчасті дії
Бізнес-рівень: Це відображає бізнес-правила, вкарбовані в код програмування. Те, що хоче «Бізнес», застосовується в цьому шарі.
Шар доступу до даних: один або кілька класів, відповідальних за доступ до постійного сховища даних.
Єдина частина 3-ярусної архітектури, яка перетинається з MVC, - це "Бізнес-рівень". "Моделі" в MVC та "Бізнес-шар" в трирівневій архітектурі намагаються досягти тієї ж мети.
"M" у MVC розмився
Шар «моделі» в MVC розширився в останні роки. З того, що я бачив, є два, можливо, три види моделей:
Моделі доменів: вони представляють "речі", про які піклується "Бізнес" - бізнес-домен. У цих класах зберігаються дані та всі процедури, які працюють на цих даних з метою виконання бізнес-правил. Моделі домену часто прив’язуються до таблиць у базі даних. Це, здається, відповідає «бізнес-шару» трирівневої архітектури.
Моделі перегляду: це класи, які використовуються для масажу даних із моделей домену на щось більш приємне для подання. Це не підходить ніде в трирівневій архітектурі, оскільки моделі перегляду не реалізують бізнес-логіку, а також не надають послуги чи доступ до даних.
Моделі бізнесу: У складних програмах виникає необхідність від'єднання доменної моделі від бізнес-логіки. Бізнес-моделі містять дані та процедури, що працюють на цих даних для впровадження бізнес-правил, а Моделі домену передаються "Сумці власності" - об'єктам, які просто містять дані, але не містять поведінки. Моделі доменів стають ще однією формою об’єкта передачі даних між базою даних та додатком.
Ніде в MVC не згадується доступ до даних. У деяких випадках ви побачите, що доступ до даних належить до "модельного" шару MVC, який, як ми бачили, вже не є чітким зрізаним шаром. Дійсно, я бачу, що трирівнева архітектура поєднується з MVC для створення цілої програми. Один збільшує або покращує інші:
- Моделі
- Доменні моделі (MVC / 3-рівень)
- Перегляд моделей (MVC)
- (необов'язково) Бізнес-моделі (MVC / 3-рівень)
- Перегляди (MVC)
- Контролери (MVC)
- Доступ до даних (3-х рівневий)
- Послуги (трирівневі)
Існує деякий перехрестя, але вони значною мірою відокремлені, і разом вони використовуються для декупажу та ізоляції різних компонентів більшої системи.