Arn*_*shn 140 model-view-controller n-tier-architecture
我想知道MVC(这是一种架构模式)与应用程序的n层架构之间究竟有什么区别.我搜索了它但找不到简单的解释.可能我对MVC概念有点天真,所以如果有人能解释其中的差异,那就太棒了.
干杯
Zak*_*Zak 93
N层架构通常将每个层由网络分隔开.IE表示层位于某些Web服务器上,然后通过网络与后端应用服务器通信以获取业务逻辑,然后通过网络与数据库服务器通信,也许应用服务器也会呼叫某些远程服务(说Authorize.net进行付款处理).
MVC是一种编程设计模式,其中代码的不同部分负责在某些应用程序中表示模型,视图和控制器.这两件事是相关的,因为例如Model层可能有一个内部实现,它调用数据库来存储和检索数据.控制器可以驻留在网络服务器上,并远程调用应用程序服务器以检索数据.MVC抽象出应用程序架构如何实现的细节.
N层只是指实现的物理结构.这两个有时会混淆,因为MVC设计通常使用N层架构实现.
voi*_*oid 41
如果3层设计是这样的:
Client <-> Middle <-> Data
Run Code Online (Sandbox Code Playgroud)
MVC模式将是:
Middle
^ |
| v
Client <- Data
Run Code Online (Sandbox Code Playgroud)
意思是:
PS 客户端将是查看和中东的控制器
Xin*_*nus 30
这是什么
说关于n层架构
乍一看,三层可能看起来类似于MVC(模型视图控制器)概念; 然而,在拓扑学上它们是不同的.三层体系结构中的基本规则是客户端层永远不会直接与数据层通信; 在三层模型中,所有通信都必须通过中间件层.从概念上讲,三层架构是线性的.但是,MVC架构是三角形的:View向Controller发送更新,Controller更新Model,View直接从Model更新.
小智 16
唯一的相似之处在于两个模式在其图表中有三个框.从根本上说,它们的用途完全不同.事实上,通常不能选择使用哪种模式,但这两种模式可以一起使用.以下是两者的良好比较:http://allthingscs.blogspot.com/2011/03/mvc-vs-3-tier-pattern.html
小智 5
三层体系结构的基本规则是客户端层永远不会直接与数据层通信; 在三层模型中,所有通信都必须通过中间件层.
这是班轮架构.这解决了如何在用户和数据库之间传递信息的问题.MVC是三角形体系结构的地方:View向Controller发送更新,Controller更新模型,View直接从模型更新.这解决了用户界面如何管理屏幕上的组件的问题.
@Cherry Middle ware更像是MVC Pattern中的请求处理程序或重定向程序.
我想解释一下MVC,根据我的模型视图控制器的工作原理如下.
这就是我所知道的MVC.
N 层架构最好使用部署图来定义。
MVC 架构最好使用序列图来定义。
两者不同且不相关,您可以将两种架构组合在一起。许多公司已经采取措施创建 N 层架构,不仅是为了部署和可扩展性,也是为了代码重用。
例如,您的业务实体对象可能需要由桌面应用程序、为客户端公开的 Web 服务、Web 应用程序或移动应用程序使用。仅仅使用 MVC 方法根本无法帮助您重用任何东西。
除了是线性的,这里没有强调的另一个主要区别是,在 N 层模型中,N 不一定是 3 层!它通常实现为三层(表示、应用、数据),中间层有两个子层(业务逻辑和数据访问)。此外,MVC 中的模型可以包含用于数据操作的数据和业务逻辑,而这些将位于 n 层中的不同层中。