Architecture DAO应该在MVC模式中使用哪个组件?
如标题所示,DAO应该位于模型块中,或者分离成另一个块,并直接与模型块交互Architecture DAO应该在MVC模式中使用哪个组件?,architecture,Architecture,如标题所示,DAO应该位于模型块中,或者分离成另一个块,并直接与模型块交互 谢谢 关于MVC,现在有很多不同的观点和看法,要确定放在哪里是很困难的。你需要使用对你有用的东西和你觉得实用的东西。我的首选是让模型包含视图显示和交互的数据,控制器可以与视图和模型交互。这与传统方法有所不同,控制器仅与模型交互,模型与视图交互。有时,我发现让模型提供事件以及让视图绑定到这些事件是不值得的。不可避免地,您的模型、视图和控制器紧密耦合,通常不会重复使用。测试不同的部分仍然比较容易,因为它们已经被分开了 这还取
谢谢 关于MVC,现在有很多不同的观点和看法,要确定放在哪里是很困难的。你需要使用对你有用的东西和你觉得实用的东西。我的首选是让
模型
包含视图
显示和交互的数据,控制器
可以与视图
和模型
交互。这与传统方法有所不同,控制器
仅与模型
交互,模型
与视图
交互。有时,我发现让模型提供事件以及让视图绑定到这些事件是不值得的。不可避免地,您的模型
、视图
和控制器
紧密耦合,通常不会重复使用。测试不同的部分仍然比较容易,因为它们已经被分开了
这还取决于您在何处使用该模式
对于Windows窗体,我倾向于将MVP与被动视图结合使用,对于web前端,我倾向于使用Martin Fowler所称的表示模型或MVVM风格中通常称为ViewModel
考虑到这些“约束”,我会让控制器
与存储库或读取模型交互,并将相关数据传递给模型
。模型
不会与任何形式的DAO直接交互
有时候人们喜欢把模型看作是业务层,但我不同意这种想法
试着把你的前端模型
想象成只代表你的视图
状态,看看它是如何为你工作的。就web api而言,模型
表示跨越网络的状态,但通常是前端的状态表示。控制器将使用它执行任何相关功能