【问题标题】:Can MVC replace n-tier architecture or is it a part of n-tier architectureMVC 可以替代 n 层架构还是 n 层架构的一部分
【发布时间】:2012-06-22 04:12:57
【问题描述】:

这些天我正在学习 MVC 架构,但我将 MVC 与 n 轮胎架构混淆了。

我看到有人说你可以直接使用MVC而不是n-tire(3-tire)架构,其中View代表UI轮胎,Controller代表业务或逻辑轮胎,模型代表数据访问轮胎。

还有人说只有 3-tire 架构的 UI Tire 会被 MVC 取代。如果是这样,我们是否必须在模型和逻辑轮胎中复制域对象?

以上两种方法哪一种是正确的,或者两者都可以根据需要使用?

【问题讨论】:

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


    【解决方案1】:

    MVC 和 N-Tier 是互补的。您可以同时使用它们。在这种情况下,MVC 替换了 UI 层。 N-Tier 描述物理结构,而 MVC 是一种设计模式。

    一个很好的例子可能是拥有一个 MVC 应用程序 (UI),它与连接到不同数据源 (DA) 的 Web 服务(服务和业务)进行通信。在这里,MVC 将允许更通用、可重用的视图和优化的 UI 层。

    但 MVC 并没有取代 N-Tier。

    希望对你有帮助!

    【讨论】:

    • 您好,您的意思是我们可以在 UI 层上使用 MVC,然后在其他层(如域和数据访问)上使用分层架构。
    • 是的,这正是我要说的。
    • 那么我们是否必须在模型中复制域对象?
    • 您要么在模型中拥有完全不同的域对象,要么重用必须在通用 dll 中实现的类和接口定义(请不要重复,重复永远不是一个好的解决方案)。您可能有不同的域对象,因为它们更适合 UI(更少的数据,为 UI 使用做好准备等)。在这种情况下,业务/服务层必须将它们提供给 UI。
    【解决方案2】:

    这些是完全不同的模式。

    N 层是关于应用层的物理分离,因此您可以换出 DAL,或添加另一个前端。

    另一方面,MVC 关注用户和应用程序之间的交互。

    【讨论】:

      【解决方案3】:

      与传统的 n 层架构相比,MVC 有很多好处。它是动态的,有利于团队合作。设计师做他们的事情而不用担心编码方面,而编码员可以继续他们的工作而不用担心设计。

      【讨论】:

        猜你喜欢
        • 2010-10-16
        • 2018-04-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-05
        • 2013-07-03
        • 1970-01-01
        • 2012-01-05
        • 2010-09-23
        相关资源
        最近更新 更多