language-agnostic - 我应该在 DAO 中传入或封装连接吗?

标签 language-agnostic persistence encapsulation dao

是将连接封装在 DAO 内更好,即让 DAO 创建或检索连接然后关闭,还是更好地将连接传递到 DAO 并处理 DAO 外部代码中的细节?

后续:如果将连接封装在 DAO 中,如何管理关闭连接?

最佳答案

DAO 应该执行 CRUD 操作并对调用者隐藏这些操作。所以你应该封装连接。

另一方面,如果上层正在协调 DAO(例如事务),那么您也可以将连接传递到 DAO(并在您打开它的同一级别关闭它,而不是在 DAO 中)。

底线是……这实际上取决于应用程序的每一层所承担的责任。调用者是否应该关心 DAO 在哪里检索数据?如果不是,则封装连接。

关于language-agnostic - 我应该在 DAO 中传入或封装连接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2410057/

相关文章:

javascript - Sprite 动画Javascript?

language-agnostic - 有没有内置垃圾收集的编译语言?

java - 如何动态填充注释

java - 将输出记录到数据库中

vb.net - 有没有办法使值只能由嵌套类 VB.NET 的父级访问?

algorithm - 您使用过 "Stack"对象 (.Net) 的哪些实际用途

math - float 学坏了吗?

java - 按照正确的 OO 设计使用另一个对象的功能 - 封装

javascript - HTML5 - 大型 Blob 和持久本地存储

java - 抽象与封装