当前位置:  开发笔记 > 后端 > 正文

MVC对n层架构

如何解决《MVC对n层架构》经验,为你挑选了7个好方法。

我想知道MVC(这是一种架构模式)与应用程序的n层架构之间究竟有什么区别.我搜索了它但找不到简单的解释.可能我对MVC概念有点天真,所以如果有人能解释其中的差异,那就太棒了.

干杯



1> Zak..:

N层架构通常将每个层由网络分隔开.IE表示层位于某些Web服务器上,然后通过网络与后端应用服务器通信以获取业务逻辑,然后通过网络与数据库服务器通信,也许应用服务器也会呼叫某些远程服务(说Authorize.net进行付款处理).

MVC是一种编程设计模式,其中代码的不同部分负责在某些应用程序中表示模型,视图和控制器.这两件事是相关的,因为例如Model层可能有一个内部实现,它调用数据库来存储和检索数据.控制器可以驻留在网络服务器上,并远程调用应用程序服务器以检索数据.MVC抽象出应用程序架构如何实现的细节.

N层只是指实现的物理结构.这两个有时会混淆,因为MVC设计通常使用N层架构实现.


N层也是一种设计模式,你不需要3台服务器来做3层系统,事实上,有可能使用单个文件做一个n层系统,用概念概念分隔每一层.
层基本上意味着进程间通信通常发生在网络链路上.我不同意在进程中(更不用说在同一个文件中)代码设计流程构成了分层设计方法.当然那是恕我直言."服务器"意味着机器可以在同一个盒子上运行多个进程; 他们甚至可能仍然在"localhost"网络上谈论.

2> void..:

如果3层设计是这样的:

Client <-> Middle <-> Data

MVC模式将是:

     Middle
     ^    |
     |    v
Client <- Data

意思是:

在3层等价物中,层之间的通信是双向的,并且总是通过中间层

在MVC等价物中,通信是单向的 ; 我们可以说每个"层"由左边的那个更新,然后更新右边的那个 - "左"和"右"只是说明

PS 客户端将是查看中东控制器


在MVC中,模型可以直接与客户端(视图)进行交互吗?我不这么认为!
@Alaa,我同意,这就是为什么我_think_它指的是数据流.更新:我刚刚在维基百科中查看,模型可以通过观察者(而不是直接)与View进行交互.

3> Xinus..:

这是什么 说关于n层架构

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


听起来不错,但我不相信"View直接从模型中更新"是一个好主意.使用Controller进行更新和插入是没有意义的,但是对于选择和过滤器没有意义,我不认为关注点的分离只是为了将视图绑定到模型上!结论 - MVC是另一个由......创建的混淆猜测.我不记得3层有限于"系统架构"或"应用程序设计".中心概念是**关注点分离**.

4> 小智..:

唯一的相似之处在于两个模式在其图表中有三个框.从根本上说,它们的用途完全不同.事实上,通常不能选择使用哪种模式,但这两种模式可以一起使用.以下是两者的良好比较:http://allthingscs.blogspot.com/2011/03/mvc-vs-3-tier-pattern.html


我认为这是迄今为止最好的答案,特别是因为MVC真的专注于UI,它可以是3层设计中的UI层.链接中的图表非常清楚地说明了这一点.

5> 小智..:

三层体系结构的基本规则是客户端层永远不会直接与数据层通信; 在三层模型中,所有通信都必须通过中间件层.

这是班轮架构.这解决了如何在用户和数据库之间传递信息的问题.MVC是三角形体系结构的地方:View向Controller发送更新,Controller更新模型,View直接从模型更新.这解决了用户界面如何管理屏幕上的组件的问题.



6> Aqeel Ahmad..:

@Cherry Middle ware更像是MVC Pattern中的请求处理程序或重定向程序.

我想解释一下MVC,根据我的模型视图控制器的工作原理如下.

    客户端通过请求任何服务来启动会话.

    Controller(请求处理程序,重定向器等)接收和处理此请求

    控制器处理请求的基本信息并将其重定向到可填满数据请求的相关模型.

    模型根据Controller传递的参数填写请求,并将结果发送回Controller.(注意:这里我想清楚的是,数据并没有直接返回到真正的MVC架构中的客户端,而是填满并返回给控制器.)

    控制器比将数据发送到View(客户端).

    客户在他面前提供所要求的服务.

这就是我所知道的MVC.



7> smwikipedia..:

给自己一个休息时间.在解决现实问题时,不要局限于某些模式.请记住一些一般原则,其中之一就是分离关注.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有