我查了很多關於DAO模式的信息,我明白了這一點。但我覺得大多數解釋並不能說明整個故事,因此我的意思是你會在哪裏使用你的DAO。因此,舉例來說,如果我有一個User類和相應的UserDAO,它能夠保存和恢復用戶對我來說,這是正確的做法:DAO模式和模型對象
控制器創建用戶對象,並把它傳遞給UserDAO的到它保存到數據庫
控制器創建用戶對象,並在其構造用戶對象進行到userDAO的調用,以自身保存到數據庫中
這是一個代碼味道,你是缺少控制器要求創建用戶的額外類「UserManager」。該的UserManager負責創建用戶和要求的UserDAO將其保存
我覺得自己是第三個選擇是最好的,因爲所有的控制器負責的委託請求到正確的模型對象。 你最喜歡的方式是什麼?我在這裏錯過了什麼嗎?
只是添加到這個;我通常也創建一個負責管理會話/事務的UserServices對象。然後我有UserDAO,它只負責實際執行從UserServices調用的查詢。 – sbrattla 2012-07-27 13:33:44
@sbrattla - 如果你正在使用用戶交易,這肯定是有意義的。我自動承擔了EJB交易,儘管OP沒有提及它們。 Kneejerk :) – kostja 2012-07-27 13:52:12
@Tom如果你不同意 - 請詳細說明 – kostja 2012-07-30 14:11:12