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

时间:2012-05-24 14:51:17

标签: model-view-controller architecture three-tier

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

它们一样吗?

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

10 个答案:

答案 0 :(得分:53)

与MVC架构的比较

  乍一看,三层可能看起来很像   模型 - 视图 - 控制器(MVC)概念;然而,拓扑学上它们是   不同。 三层架构的基本规则是   客户端层永远不会直接与数据层通信;在一个   三层模型所有通信必须通过中间层。   从概念上讲,三层架构是线性。然而   [model-view-controller] MVC架构是三角形:视图发送   更新控制器,控制器更新模型,以及   视图直接从模型更新。

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

答案 1 :(得分:19)

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

这篇文章更详细地描述了MVC模式:http://martinfowler.com/eaaDev/uiArchs.html

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

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

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

有关详细信息,您可以在互联网上搜索并找到关于这两个主题的gazzilion文章。

答案 2 :(得分:10)

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

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

答案 3 :(得分:4)

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

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

但差异来自于各层之间的沟通方式:

  • 3层:任何东西都通过逻辑层(a-> b,b-> c和c-> b,b-> a)
  • MVC:他们以三角形方式以2比2进行通信。 (a-> b,b-> c,c-> a)

答案 4 :(得分:2)

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

答案 5 :(得分:1)

两者之间的主要区别是:

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

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

答案 6 :(得分:1)

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

当大量人员参与制作大型应用程序时,此架构(三层)是必不可少的。

答案 7 :(得分:1)

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

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

答案 8 :(得分:0)

首先,层是用于物理部署的,您可能指的是层,而MVC是表示层的框架,仅此而已

答案 9 :(得分:0)

MVC的体系结构样式是非分层的(三角形的):

  • View子系统将更新发送到Controller子系统
  • 控制器子系统更新模型子系统
  • View子系统直接从Model子系统更新

三层建筑风格是分层的(线性的):

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

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

相关问题