在 MVC 和 3 层或 N 层架构中开发网站有啥区别?

Posted

技术标签:

【中文标题】在 MVC 和 3 层或 N 层架构中开发网站有啥区别?【英文标题】:What is difference of developing a website in MVC and 3-Tier or N-tier architecture?在 MVC 和 3 层或 N 层架构中开发网站有什么区别? 【发布时间】:2011-02-20 01:28:14 【问题描述】:

在 MVC 和 3 层或 N 层架构中开发网站有什么区别?

哪个更好?有什么优缺点?

【问题讨论】:

可能重复:***.com/questions/899803/…、***.com/questions/1135056/…、***.com/questions/14451444/… 【参考方案1】:

它们几乎相同,但是在 3 层中,顶层(表示)从不直接与底层(数据持久性)通信。

在模型视图控制器中,理论上模型应该“通知”视图它已更改,以便视图可以更新。但是,这在大多数 Web 应用程序中通常不是问题,因为它们是无状态的。我不确定是否有任何著名的 php MVC 架构具有直接与模型通信的视图,反之亦然,但如果没有,那么说它们实际上是 3 层是正确的。

***说:

乍一看,这三层可能 看起来类似于 MVC(模型视图 控制器)概念;然而, 在拓扑上它们是不同的。一种 三层的基本规则 架构永远是客户层 直接与数据通信 层;在三层模型中 通讯必须通过 中间件层。从概念上讲 三层架构是线性的。 然而,MVC 架构是 三角形:视图将更新发送到 控制器,控制器更新 模型和视图得到更新 直接来自模型。

来源:Wikipedia: Multitier architecture

【讨论】:

在大多数现代 MVC 框架中,模型从不与视图通信。一切都通过控制器。

以上是关于在 MVC 和 3 层或 N 层架构中开发网站有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

javaEE体系架构

请问JAVA三层架构,持久层,业务层,表现层,都该怎么理解?和MVC三层模型有啥

Entity Framework 和 MVC 在业务层或数据访问层创建 DbContext

MVC5 网站开发之五 展示层架构

MVC5 网站开发之四 业务逻辑层的架构和基本功能

深入探讨:如何理解.Net的三层架构