是将连接封装在 DAO 内更好,即让 DAO 创建或检索连接然后关闭,还是更好地将连接传递到 DAO 并处理 DAO 外部代码中的细节?
后续:如果将连接封装在 DAO 中,如何管理关闭连接?
最佳答案
DAO 应该执行 CRUD 操作并对调用者隐藏这些操作。所以你应该封装连接。
另一方面,如果上层正在协调 DAO(例如事务),那么您也可以将连接传递到 DAO(并在您打开它的同一级别关闭它,而不是在 DAO 中)。
底线是……这实际上取决于应用程序的每一层所承担的责任。调用者是否应该关心 DAO 在哪里检索数据?如果不是,则封装连接。
关于language-agnostic - 我应该在 DAO 中传入或封装连接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2410057/