我想知道 MVC(这是一种架构模式)和应用程序的 n 层架构之间到底有什么区别。我搜索了它,但找不到简单的解释。可能是我对 MVC 概念有点天真,所以如果有人能解释其中的区别,那就太好了。
干杯
我想知道 MVC(这是一种架构模式)和应用程序的 n 层架构之间到底有什么区别。我搜索了它,但找不到简单的解释。可能是我对 MVC 概念有点天真,所以如果有人能解释其中的区别,那就太好了。
干杯
N 层架构通常具有由网络分隔的每一层。IE表示层在一些Web服务器上,然后通过网络与后端应用程序服务器进行业务逻辑通信,然后再通过网络与数据库服务器通信,并且可能应用程序服务器还调用一些远程服务(说 Authorize.net 进行付款处理)。
MVC 是一种编程设计模式,其中不同部分的代码负责表示某些应用程序中的模型、视图和控制器。这两件事是相关的,因为例如模型层可能有一个内部实现,它调用数据库来存储和检索数据。控制器可以驻留在网络服务器上,并远程调用应用服务器来检索数据。MVC 抽象出应用程序架构如何实现的细节。
N 层仅指实现的物理结构。这两者有时会混淆,因为 MVC 设计通常是使用 N 层架构实现的。
如果 3 层设计是这样的:
Client <-> Middle <-> Data
MVC 模式将是:
Middle
^ |
| v
Client <- Data
意思是:
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 更新 Model,View 直接从 Model 更新。这解决了用户界面如何管理屏幕上的组件的问题。
@Cherry Middle ware 更像是 MVC 模式中的请求处理程序或重定向器。
我想解释一下 MVC,根据我的说法,模型视图控制器是这样工作的。
这就是我所知道的关于 MVC 的全部内容。
让自己休息一下。在解决实际问题时,不要将自己限制在某些模式中。只要记住一些一般原则,其中之一就是关注点分离。
N 层架构最好使用部署图来定义。
最好使用序列图来定义 MVC 架构。
两者不同且不相关,您可以将两种架构组合在一起。许多公司已采取措施创建 N 层架构,不仅用于部署和可扩展性,还用于代码重用。
例如,您的业务实体对象可能需要由桌面应用程序、为客户端公开的 Web 服务、Web 应用程序或移动应用程序使用。简单地使用 MVC 方法根本不会帮助您重用任何东西。
除了线性之外,这里没有足够强调的另一个主要区别是,在 N 层模型中,N 不一定是 3 层!它通常被实现为三层(表示、应用程序、数据),中间层有两个子层(业务逻辑和数据访问)。此外,MVC 中的模型可以包含用于数据操作的数据和业务逻辑,而这些将位于 n 层中的单独层中。
结论:N-tier 是一种架构,MVC 是一种设计模式。它们是应用于两个不同领域的相同隐喻。
Jerry:这是一个简单的例子,说明两者之间的关系:
第 1 层- 由通过某种网络服务或类似的控制器与第 2 层通信的模型组成,以处理输入验证、计算和其他与视图相关的事情。当然,它还包含视图本身——它可以是桌面应用程序中的 GUI,也可以是网络应用程序中的网络界面。
第 2 层- 包含某种服务或从第 1 层接收消息的其他方式。不/不应该知道第 1 层,因此只能接听来自上面的电话 - 永远不要自己要求。还包含所有业务逻辑。
第 3 层- 包含域模型、数据库的对象表示以及用于通信和更新数据库条目的所有逻辑。
在三层模型中,所有通信都必须通过中间层。从概念上讲,三层架构是线性的。然而,[model-view-controller] MVC 架构是三角形的:视图向控制器发送更新,控制器更新模型,视图直接从模型中更新。
N 层架构从不直接与数据访问层通信。在 3 层架构中:
所有数据都通过中间层进行通信。演示文稿 <-> 业务 <-> 数据。
MVC(模型-视图-控制器)架构是三角形的。
模型(数据)、视图(UI)、控制器(逻辑)。