DAO是对如何使用对象访问数据库的抽象。在 DAO 的原始实践中,首先有一个接口定义您期望从数据库执行的操作:
interface ModelDao {
Model load(Long id);
Long save(Model object);
}
Run Code Online (Sandbox Code Playgroud)
它可以是通用的,也可以是适合您设计的任何方式。除了接口的高度可测试性之外,DAO 模式还增加了另一个优点,即现在您可以使用不同的技术来实现相同的 DAO 模式。随着时间的推移,您可能需要从 EJB 切换到 Spring JDBC 或任何其他更改。
当这一切发生时,服务层仍然并且只能通过DAO接口看到数据层。实现始终是从服务层封装的。另外,它还通过mock等机制增加了服务层的可测试性。
如果服务层直接开始处理数据层,则意味着服务层变得特定于实现,这除了使仅针对业务逻辑测试服务层变得更加困难之外,还减少了模块化和关注点的耦合。
最后但并非最不重要的一点是,虽然坚持原来的做法总是最好的,但采用该方法取决于产品/项目的规模和意图。
| 归档时间: |
|
| 查看次数: |
1219 次 |
| 最近记录: |