我想知道MVC(这是一种架构模式)与应用程序的n层架构之间究竟有什么区别.我搜索了它但找不到简单的解释.可能我对MVC概念有点天真,所以如果有人能解释其中的差异,那就太棒了.
干杯
N层架构通常将每个层由网络分隔开.IE表示层位于某些Web服务器上,然后通过网络与后端应用服务器通信以获取业务逻辑,然后通过网络与数据库服务器通信,也许应用服务器也会呼叫某些远程服务(说Authorize.net进行付款处理).
MVC是一种编程设计模式,其中代码的不同部分负责在某些应用程序中表示模型,视图和控制器.这两件事是相关的,因为例如Model层可能有一个内部实现,它调用数据库来存储和检索数据.控制器可以驻留在网络服务器上,并远程调用应用程序服务器以检索数据.MVC抽象出应用程序架构如何实现的细节.
N层只是指实现的物理结构.这两个有时会混淆,因为MVC设计通常使用N层架构实现.
如果3层设计是这样的:
Client <-> Middle <-> Data
MVC模式将是:
Middle ^ | | v Client <- Data
意思是:
在3层等价物中,层之间的通信是双向的,并且总是通过中间层
在MVC等价物中,通信是单向的 ; 我们可以说每个"层"由左边的那个更新,然后更新右边的那个 - "左"和"右"只是说明
PS 客户端将是查看和中东的控制器
这是什么 说关于n层架构
乍一看,三层可能看起来类似于MVC(模型视图控制器)概念; 然而,在拓扑学上它们是不同的.三层体系结构中的基本规则是客户端层永远不会直接与数据层通信; 在三层模型中,所有通信都必须通过中间件层.从概念上讲,三层架构是线性的.但是,MVC架构是三角形的:View向Controller发送更新,Controller更新Model,View直接从Model更新.
唯一的相似之处在于两个模式在其图表中有三个框.从根本上说,它们的用途完全不同.事实上,通常不能选择使用哪种模式,但这两种模式可以一起使用.以下是两者的良好比较:http://allthingscs.blogspot.com/2011/03/mvc-vs-3-tier-pattern.html
三层体系结构的基本规则是客户端层永远不会直接与数据层通信; 在三层模型中,所有通信都必须通过中间件层.
这是班轮架构.这解决了如何在用户和数据库之间传递信息的问题.MVC是三角形体系结构的地方:View向Controller发送更新,Controller更新模型,View直接从模型更新.这解决了用户界面如何管理屏幕上的组件的问题.
@Cherry Middle ware更像是MVC Pattern中的请求处理程序或重定向程序.
我想解释一下MVC,根据我的模型视图控制器的工作原理如下.
客户端通过请求任何服务来启动会话.
Controller(请求处理程序,重定向器等)接收和处理此请求
控制器处理请求的基本信息并将其重定向到可填满数据请求的相关模型.
模型根据Controller传递的参数填写请求,并将结果发送回Controller.(注意:这里我想清楚的是,数据并没有直接返回到真正的MVC架构中的客户端,而是填满并返回给控制器.)
控制器比将数据发送到View(客户端).
客户在他面前提供所要求的服务.
这就是我所知道的MVC.
给自己一个休息时间.在解决现实问题时,不要局限于某些模式.请记住一些一般原则,其中之一就是分离关注.