4

Ayende前段时间写了一组关于Repositories 如何成为新的 Singletons模式的文章。我认为我已经阅读了所有这些内容,并且我同意他的一些观点。大多数时候,我看到有数十个存储库的项目只是为了抽象一个 ORM 的使用,它已经抽象了数据库访问。

在避免它们之后,我开始遇到一些问题来隔离我的 UT 代码,因为一些 ORM 是难以模拟的软件片段,或者至少 EF 是。Ayende 的一些项目使用内存数据库进行了测试,但即使它工作正常,我也不想这样做。

所以,这是我的问题:我不喜欢拥有数十个典型存储库或通用存储库,但是,我希望有一种简单的方法来隔离我的代码。

当前存储库仅对 UT 有用吗?

注意:我说的是数据库访问,而不是抽象其他类型的数据源,如远程服务。

4

1 回答 1

5

对我来说,存储库(或 DAO)很有用,因为它们将与持久性相关的代码与业务逻辑代码隔离开来。

(期望的)副作用之一是业务逻辑代码和数据访问代码都变得更容易测试。

另一个期望的副作用是,与持久性相关的方法很容易被多个业务逻辑服务重用。

于 2012-12-22T23:20:17.520 回答