gpt4 book ai didi

asp.net-mvc - MVC - 它只是一个 3 层模型吗?

转载 作者:行者123 更新时间:2023-12-04 17:05:39 28 4
gpt4 key购买 nike

刚开始研究mvc,还不确定我是否掌握它。据我所知,它似乎是一个 3 层解决方案的实现,即模型对应于 DAL, Controller 对应于业务逻辑层, View 作为表示层。

我在这里离基地很远吗?

最佳答案

我告诫不要将模型视为简单的数据访问层。这过于简单化了,它会导致您将过多的代码放入 Controller 层。最好将更多的代码放在模型中,并使数据库持久性仅是模型内部代码的一部分。我喜欢这样想 MVC:

  • Controller:处理输入,确定要实例化哪个Model和哪个View
  • 查看:应用数据的呈现
  • 模型:应用程序的所有其他逻辑,包括但不限于 DAL

  • 这基本上是 Page Controller图案。

    另一种思考方式是:假设您必须将 Web 应用程序移植到另一个平台,例如命令行应用程序或桌面 GUI 应用程序。您应该重用应用程序逻辑的哪些部分?当您将应用程序移植到另一个平台时, Controller 和 View 会发生变化,因为输入和输出的实现都需要更改。不需要更改的代码应该在您的模型中实现。

    如果您正确地完成了关注点分离,那么模型、 View 和 Controller 将是最小耦合的,您可以更改其中一个的实现而不会过多地影响其他的。如果您更改了模型,并且发现自己在 Controller 或 View 中重写了大量代码,那么您可能没有充分分离这些层。反之亦然。

    阅读 Martin Fowler 的 Anemic Domain Model反模式或 Domain Driven Design Quickly获得一些其他的观点。

    另见我的 blog from 2008我写这篇文章是为了回应人们谴责 Active Record 模式。它得到了一些很好的评论和讨论。

    关于asp.net-mvc - MVC - 它只是一个 3 层模型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1753716/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com