63

3层架构和mvc有什么区别?

他们是一样的吗?

两者都有 3 层,即模型、视图和控制器

4

10 回答 10

81

与 MVC 架构的比较

乍一看,这三层似乎类似于模型-视图-控制器(MVC)的概念。但是,在拓扑上它们是不同的。三层架构中的一个基本规则是客户端层从不直接与数据层通信。在三层模型中,所有通信都必须通过中间层。从概念上讲,三层架构是线性的。然而,[model-view-controller] MVC 架构是三角形的:视图向控制器发送更新,控制器更新模型,视图直接从模型中更新。

资料来源:http ://en.wikipedia.org/wiki/Multitier_architecture#Three-tier_architecture

于 2012-05-24T14:58:14.217 回答
27

MVC 是一种用于使 UI 代码更易于维护和测试的模式。当使用 MVC 模式时,可以对大部分 UI 代码进行单元测试。

这是一篇很好的文章,它更详细地描述了 MVC 模式:http ://martinfowler.com/eaaDev/uiArchs.html

3 层架构是出于完全不同的原因而使用的模式。它将整个应用程序分成有意义的“组”:UI、业务逻辑、数据存储。

所以 3 层应用程序是指应用程序中的所有代码。MVC 模式是在 UI 层中使用的模式。

这是一篇关于 3 层架构的好文章:http: //dotnetslackers.com/articles/net/IntroductionTo3TierArchitecture.aspx

有关更多信息,您可以搜索互联网并找到关于这两个主题的大量文章。

于 2012-05-24T15:06:17.153 回答
14

在 MVC中:MVC 架构是三角形的:视图向控制器发送更新,控制器更新模型,视图直接从模型中更新

在三层中:三层架构是客户端层从不直接与数据层通信在三层模型中,所有通信都必须通过中间层

于 2013-09-12T12:51:21.240 回答
7

它们在某种程度上相似,例如:

  • 3 层将整个应用分为:UI、逻辑和数据
  • MVC将UI部分分为:视图(UI的UI种类)、模型(数据)和控制器(逻辑)

但不同之处在于层级之间的通信方式:

  • 3 层:任何东西都经过逻辑层(a->b、b->c 和 c->b、b->a)
  • MVC:它们以三角形方式 2 对 2 进行通信。(a->b, b->c, c->a)
于 2018-02-15T11:54:21.193 回答
2

http://en.wikipedia.org/wiki/Multitier_architecture 简而言之,在 3 层架构中,表示层从不直接与数据层通信。在 MVC 中,模型、视图和控制器之间的关系是三角形的。三个中的两个可以互相交流

于 2012-05-24T15:06:16.200 回答
2

在三层解决方案中,UI 与业务层分离,以确保关注外观和感觉的 UI 设计师不会与留给编程专业人士的繁重编程相混淆。

当大量人员参与生产大型应用程序时,这种架构(三层)是必不可少的。

于 2016-11-19T04:55:16.670 回答
2

MVC 架构风格是非分层的(三角形):

  • View 子系统向 Controller 子系统发送更新
  • 控制器子系统更新模型子系统
  • 视图子系统直接从模型子系统更新

3 层架构风格是分层的(线性):

  • 表示层从不直接与数据层通信(不透明架构)

  • 所有通信都必须经过中间件层

于 2020-06-01T11:16:36.083 回答
1

两者的主要区别在于:

三层架构是客户端层从不直接与数据层通信 在三层模型中,所有通信都必须通过中间层

MVC 架构是三角形的:视图向控制器发送更新,控制器更新模型,视图直接从模型中更新

于 2015-11-17T21:48:45.530 回答
1

两者的主要区别在于:在这种情况下,“层”也可以称为“层”。所涉及的三层或层包括: 以 HTML/JS/CSS 的形式向浏览器发送内容的表示层。这可能会利用 React、Angular、Ember、Aurora 等框架。一个使用应用程序服务器并处理应用程序业务逻辑的应用程序层。这可能是用 C#、Java、C++、Python、Ruby 等编写的。数据层是一个数据库管理系统,提供对应用程序数据的访问。这可能是 MSSQL、MySQL、Oracle 或 PostgreSQL、Mongo 等。

MVC 架构是三角形的:视图向控制器发送更新,控制器更新模型,视图直接从模型中更新

于 2018-01-12T06:42:29.563 回答
0

首先tier是用于物理部署的,你的意思可能是layers,而MVC是表示层的框架,仅此而已

于 2018-09-27T10:16:13.867 回答