fie*_*ish 5 asp.net-mvc 3-tier separation-of-concerns
刚开始研究mvc,我还不确定是否已经掌握了它.从我收集的内容看来,它似乎是一个3层解决方案的实现,即Model对应于DAL,Controller对应于业务逻辑层,View对应于表示层.
我离开基地吗?
我告诫不要将模型简单地视为数据访问层.这过于简单化,导致您将太多代码放入控制器层.如果将更多代码放在Model中,并使数据库持久性只是Model内部代码的一部分,那就更好了.我喜欢这样想MVC:
这基本上是页面控制器模式.
另一种思考方式是:假设您必须将Web应用程序移植到另一个平台,例如命令行应用程序或桌面GUI应用程序.您应该重用哪些应用程序逻辑部分?当您将应用程序移植到另一个平台时,Controller和View会发生变化,因为输入和输出的实现都需要更改.不需要更改的代码应该在您的模型中实现.
如果你已经完成了关注点的分离,那么模型,视图和控制器将是最小耦合的,你可以改变一个的实现,而不会过多地影响其他的.如果更改模型并发现自己在Controller或View中重写了大量代码,则可能没有充分分离这些层.反之亦然.
快速了解Martin Fowler的Anemic Domain Model反模式或域驱动设计以获得其他一些观点.
另请参阅2008年我写的博客,以回应人们谴责Active Record模式.它得到了一些很好的评论和讨论.
| 归档时间: |
|
| 查看次数: |
912 次 |
| 最近记录: |