数据源,存储库,ViewModel和IoC容器。真的需要一个存储库吗?

时间:2012-01-16 21:55:06

标签: mvvm dependency-injection inversion-of-control repository-pattern mvvm-light

我目前有这样的流程:

Repository注入DatasourceViewModel注入了Repository

因为需要转换到UI的项目和变异(删除,更改)的流量不变,所以我不会在存储库中保留一组项目。因此,我最终获得了一个只在Datasource和ViewModels之间传递Items的存储库。

我一直都知道你不应该直接在UI层中使用数据源(ViewModel在我的UI层中)。但如果使用依赖注入,情况仍然如此吗?我是将Repository模式用于其使用还是仅仅导致我的开销? (现在觉得它确实如此。)

我最初实现了存储库来解耦UI和数据源,但我发现DI在没有存储库的情况下做得很好。

1 个答案:

答案 0 :(得分:2)

你可能想看一下Oren Eini(又名Ayende Rahien)的一些博客文章

The evils of the repository abstraction layer

Repository is the new singleton

通常情况下,存储库只是流动加热器"。除了转发呼叫和结果外,他们什么都不做,只是增加了开销。

顺便说一下:如果您应该或不应该使用存储库与依赖注入无关!


<强>更新

Oren刚刚发表了new post on this topic