我开始使用MVVM Light版本4,我无法理解:
Axe*_*ger 17
首先的-像往常一样-在MVVM你不具备做一些事情,这是一个建议或最佳实践.通常,您可以自由地将数据访问编码到视图模型中 - 这样做对于小型项目或原型实现可能是一种很好的做法.
但是,您应该考虑到这也存在一些缺点.实现数据服务的原因是该组件是可重用的,甚至可能在MVC应用程序等其他场景中可用.此外,它分离了从数据存储中获取模型的顾虑.
实现IDataService的原因是您可以在需要时交换实现,例如提供设计时数据.当您需要这个时,您还必须考虑严重依赖于接口的控制模式的反转.在这种情况下,IOC容器也可能很有趣,尽管不是必需的.
但是,首先是上述建议,模式,设计指南和最佳实践,使您可以自由地设计最符合您要求的应用程序.
编辑:数据服务的大小
数据服务的设计和范围取决于您的应用程序及其要求.它可以是所有模型的单一数据服务,也可以是每个模型的一个数据服务.此外,数据服务接口的设计可能是一个单独的决定.一个服务类可以实现多个服务接口,从而允许从用户隐藏实现的某些方面(方法).
在设计数据服务时,您应该查看工作单元和存储库模式.有几个示例实现.
如果您只需要一个基于单个查询的非常简单的工作单元模式,您可以查看我的博客,在那里我写了关于将IQueryable工作模式转换为单元的工作模式.但是,这仅适用于非常简单的情况,通常是具有存储库和适当的工作单元的完整实现是更合适的.
| 归档时间: |
|
| 查看次数: |
8899 次 |
| 最近记录: |