【问题标题】:Model layer MVC and the difference between 3-Tier architecture and MVC模型层 MVC 以及 3-Tier 架构与 MVC 的区别
【发布时间】:2013-12-28 10:47:58
【问题描述】:

我试图弄清楚 MVC 和 3 层架构之间的区别。我知道 MVC 在大型应用程序中适用于 3 层架构的表示层:

如果我是对的,MVC 的 Model 层和 3-tier Architecture 的 Logic 层有什么区别?

【问题讨论】:

  • 我不是 n 层专家,因此是评论而不是答案。在我看来,n 层模式的规模与 MVC 不同。后者定义了应用程序内的信息流,而 n-tier 定义了具有基础设施的应用程序之间的信息流。但话又说回来......我可能错了。

标签: model-view-controller 3-tier


【解决方案1】:

另一种思考方式是 MVC 可以充当 3 层架构的表示层。

为了具体回答您的问题,在 MVC 中,模型是您的数据的表示。 View 呈现并作用于您的数据,而 Controller 在架构的其余部分(可能是 3 层架构的 BL)和 View 之间编组您的模型。

【讨论】:

  • 模型层和业务逻辑之间有直接关系吗?让我感到困惑的是模型层负责业务逻辑。我最近开始使用 JavaEE,但我不明白如何将这两个概念结合起来,MVC 和 3-tier。
  • 没有苹果和橘子。模型层当然不对逻辑负责,这违反了 MVC 模式。该模型应该是“愚蠢的”。
  • @Maess 完全错误。模型是一个层,它包含应用程序的业务逻辑。这包括实现领域模型(使用domain objects)、服务和持久性抽象。 模型不是类或对象。 MVC 架构中有两个主要层:表示层(视图、控制器、东西)和模型层(域对象、服务、持久性)。
  • @Maess,谢谢你的回答。到目前为止,我同意你的观点,但是你能不能对 MVC 做一个 3 层架构的投影?所以,让我们从层是部署层的地方开始。如果我是对的,我如何在 3 层架构中部署和分布这些层(模型、视图和控制器)? PS:我找到的唯一信息:MVC,在大型应用程序中,适用于表示层(3层架构的第一层)。
【解决方案2】:

我基本上将 MVC 模型视为分层架构中的实体。我曾经想过这个问题,并在这里写过。 http://serena-yeoh.blogspot.com/2011/12/mvc-and-layered-architecture.html

您还可以从此处获取代码中的示例实现 http://layersample.codeplex.com/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-02
    • 2012-05-31
    • 2017-03-07
    • 2016-06-05
    • 1970-01-01
    • 2010-10-16
    • 2012-08-21
    • 2015-06-24
    相关资源
    最近更新 更多