DAO应该在MVC模式中发生哪一部分?

时间:2019-07-24 15:24:17

标签: architecture

作为标题,DAO应该在模型块中还是应该分成另一个块并直接与模型块交互?

谢谢!

1 个答案:

答案 0 :(得分:0)

如今,有关MVC的变化和意见很多,很难确定放置位置。您需要使用对自己有用的东西,以及发现实用的东西。我的偏好是让Model包含View显示并与之交互的数据,并且Controller可以与ViewModel进行交互。这与传统方法有所不同,传统方法是Controller仅与Model进行交互,而ModelView进行交互。我有时发现,Model提供事件是不值得的,而将View绑定到这些事件是不值得的。您的ModelViewController不可避免地紧密相连,通常不会被重复使用。鉴于已经将它们分开,测试各个位仍然要容易得多。

这还取决于您在哪里使用模式。

对于Windows窗体,我倾向于将MVP与更多的被动视图结合使用,对于Web前端,我倾向于将Martin Fowler称为表示模型的方式使用,或者在MVVM样式中通常称为ViewModel

考虑到这些“约束” ,我将让Controller存储库 read模型进行交互,并传递Model的相关数据。 Model不会直接与任何形式的DAO交互。

有时候人们喜欢将Model视为业务层,但我不同意这个想法。

尝试将您的前端Model看作只是代表您的View状态,并了解它如何为您工作。就网络API而言,Model表示跨越线路的状态,但无论如何通常通常是前端的状态表示。 Controller将使用它来执行任何相关功能。