【问题标题】:what is the difference between 3 tier architecture and a mvc?3层架构和mvc有什么区别?
【发布时间】:2012-05-31 04:19:29
【问题描述】:

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

它们是一样的吗?

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

【问题讨论】:

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


【解决方案1】:

与 MVC 架构比较

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

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

【讨论】:

  • MVC 架构不一定是三角形的,也可以是三角形的。但是,n 层架构始终是线性的。
  • 查看this视频或此article中的图片,希望对某人有所帮助。
  • 那么,哪种架构(线性和三角形)更好,为什么?
  • 很简单,MVC是分层架构的表现层框架,而N-tier是物理部署架构风格,根本没法比,没有意义
【解决方案2】:

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

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

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

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

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

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

【讨论】:

  • 这是不正确的,MVC 是一种架构原则,不仅适用于 UI 层。这方面的示例可以在任何 Web 应用程序中找到,其中视图是 HTML,控制器是 API 端点,模型是数据表示。 MVC .net 就是一个例子。检查这个很好的解释softwareengineering.stackexchange.com/questions/299836/…
【解决方案3】:

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

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

【讨论】:

    【解决方案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)

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

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

        【讨论】:

          【解决方案7】:

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

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

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

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

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

          【讨论】:

            【解决方案8】:

            两者的主要区别在于:

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

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

            【讨论】:

              【解决方案9】:

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

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

              【讨论】:

                【解决方案10】:

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

                【讨论】:

                  猜你喜欢
                  • 2011-02-20
                  • 1970-01-01
                  • 2016-10-05
                  • 2019-07-24
                  • 2011-05-20
                  • 2017-03-07
                  • 1970-01-01
                  • 2013-12-28
                  • 2017-07-05
                  相关资源
                  最近更新 更多