1

我想知道 Spring DAO 的典型用例是什么,我们可以轻松地在不同的持久性框架之间切换。

除了抽象样板代码(对于 JDBC、Hibernate 之类的),为什么任何应用程序都想如此频繁地更改其 ORM 框架?

4

2 回答 2

2

通过使用具有不同 DAO 接口的 DAO 模式,您可以模拟 DAO 实现。这样可以提高代码的可测试性,因为您可以编写不需要数据库访问的测试。

这不仅关乎能够频繁地在 ORM 框架之间切换,而且如果您被迫更改 ORM,还可以减少工作量。

另一个原因是,您可能有不同的数据源,例如数据库、Web 服务或文件系统。在这种情况下,您不会抽象 ORM,而只是抽象一般的持久性机制。

于 2012-10-12T08:40:06.253 回答
1

我认为 DAO 背后真正重要的想法是,您只有一个位置,用于存放特定实体的所有数据访问相关代码。这使您的持久层的测试和重构更容易,并且您的代码更具可读性。

此外,它使代码更具可读性。想想你团队中的一个新开发人员应该实现一个特性。如果她需要访问数据库,她会在 dao 中查找数据访问方法。如果您将数据访问代码分散在不同的服务中,那么有人会产生代码重复的风险非常高。

于 2012-10-12T11:56:29.607 回答