2010-03-09 92 views

回答

3

DAO應該執行CRUD操作並從調用者隱藏這些操作。所以你應該封裝連接。另一方面,如果上層協調DAO(例如事務處理),那麼你也可以將連接傳遞到DAO中(並且在打開它的同一層上關閉它,而不是在DAO中)。

底線是......它實際上取決於您的應用程序的每一層所承擔的責任。呼叫者應該關心DAO檢索數據的位置嗎?如果不是,則封裝連接。

+0

我正在考慮創建一個工廠和DAO調用,這本質上是封裝。 – 2010-03-09 15:33:44

+0

DAO工廠用於生產混凝土DAO(實現)。我不確定我是否明白「創建工廠並讓DAO呼叫」的意思! – 2010-03-09 15:52:16

+0

對不起,我的意思是連接工廠,而不是DAO工廠。 – 2010-03-09 16:16:34

2

從純粹的可用性和標準的觀點來看,我認爲你需要DAO來照顧連接。這畢竟是數據訪問的主要功能。

考慮你的使用,你想要使用DAO的表示/業務層代碼充分了解數據庫以創建連接以傳遞給DAO?如果您需要移動數據庫或重新命名數據庫,那麼該數據庫非常適合封裝連接。

使用管理自己連接的DAO還可以更加簡潔地使用調用代碼中的對象,提高IMO的整體可讀性。

0

我認爲DAO的關鍵點在於,您可以在應用程序的其他部分無需知道或關心的情況下更換實現。我已經在一個項目上做了這個。 DAO接口保持不變,但連接細節發生變化,因此您無法從外部看到它。

相關問題