加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 03:18:36 所属栏目:asp.Net 来源:网络整理
导读:刚开始研究mvc,我还不确定是否已经掌握了它.从我收集的内容看来,它似乎是一个3层解决方案的实现,即Model对应于DAL,Controller对应于业务逻辑层,View对应于表示层. 我离开基地吗? 解决方法 我告诫不要将模型简单地视为数据访问层.这过于简单化,导致您将太多
刚开始研究mvc,我还不确定是否已经掌握了它.从我收集的内容看来,它似乎是一个3层解决方案的实现,即Model对应于DAL,Controller对应于业务逻辑层,View对应于表示层.

我离开基地吗?

解决方法

我告诫不要将模型简单地视为数据访问层.这过于简单化,导致您将太多代码放入控制器层.如果将更多代码放在Model中,并使数据库持久性只是Model内部代码的一部分,那就更好了.我喜欢这样想MVC:

>控制器:处理输入,确定要实例化的模型和视图
>查看:应用程序数据的显示
> Model:应用程序的所有其他逻辑,包括但不限于DAL

这基本上是Page Controller模式.

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

如果你已经完成了关注点的分离,那么模型,视图和控制器将是最小耦合的,你可以改变一个的实现,而不会过多地影响其他的.如果更改模型并发现自己在Controller或View中重写了大量代码,则可能没有充分分离这些层.反之亦然.

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

另请参阅我为响应人们谴责Active Record模式而写的blog from 2008.它得到了一些很好的评论和讨论.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读