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

Sta*_*arx 24 php model-view-controller 3-tier n-tier-architecture

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

哪一个更好?什么是利弊?

Lot*_*tes 13

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

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

维基百科说:

乍一看,三层可能看起来类似于MVC(模型视图控制器)概念; 然而,在拓扑学上它们是不同的.三层体系结构中的基本规则是客户端层永远不会直接与数据层通信; 在三层模型中,所有通信都必须通过中间件层.从概念上讲,三层架构是线性的.但是,MVC架构是三角形的:View向Controller发送更新,Controller更新Model,View直接从Model更新.

来源:维基百科:多层架构