2012-10-14 143 views
0

可以在業務層對象「服務」一個DAO層對象?或者這是否違反了正確分層架構的完整性?可以在業務層對象「服務」一個DAO層對象?

例如,

class MyService { 

} 

class MyDao { 
    private MyService myService; 
} 
+3

不應該說,它是周圍的其他方式?告訴不問按http://c2.com/cgi/wiki?TellDontAsk – RNJ

+0

Hvant閱讀DAO/DTO模式? –

回答

3

我不會做它。 DAO應該處理數據庫;服務管理其他服務和DAO以履行其使用案例。將服務稱爲DAO和任何其他需要的服務會更好。

你冒險與這種安排循環依賴。

+1

+1「循環依賴」 – Vrushank

0

與DAO對象構建服務的標準方法是讓服務封裝DAO。

public class Service { 
    private DAO dao; 
} 
public class DAO {} 

這是有用的例如,讓一個服務封裝多個DAO對象,或者提供額外的邏輯,例如在服務事務劃分。