【问题标题】:Datasource, Repository, ViewModels and IoC Container. Is a Repository really needed?数据源、存储库、视图模型和 IoC 容器。真的需要存储库吗?
【发布时间】:2025-12-01 21:30:01
【问题描述】:

我目前有这样的流程:

Repository 被注入DatasourceViewModel 被注入 Repository

因为需要转换到 UI 的项目和突变(删除、更改)不断流动,所以我不在存储库中保留项目集合。因此,我最终得到了一个仅在数据源和视图模型之间传递项目的存储库。

我一直明白,您不应该直接在 UI 层中使用 Datasource(ViewModel 在我的 UI 层中)。但是,如果您使用依赖注入,情况仍然如此吗?我是在使用 Repository 模式还是只是给我造成了开销? (现在感觉就是这样。)

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

【问题讨论】:

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


    【解决方案1】:

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

    The evils of the repository abstraction layer

    Repository is the new singleton

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

    顺便说一句:是否应该使用存储库与依赖注入无关!


    更新

    Oren 刚刚发布了new post on this topic

    【讨论】: