我們假設我有User
類和兩個子類Employee
和Customer
。我在DB中用一個列來指定用戶類型,將此層次結構實現爲一個按層次結構的表。查詢此表時,我需要返回正確類型的對象。獲取用於按層次結構表結構的DAO
我需要像CustomerDAO
或EmployeeDAO
每種類型的對象單獨的DAO,所以每個返回各自Customer
和Employee
對象。如果是的話如何從DAOFactory
讓他們不使用:
if(type.equlas('customer'))
return customerDao;
else
retrun employeeDao;
由於實施User
的類型可以改變,我不希望改變條件的每一次。
或者還有其他方法嗎?任何想法將不勝感激。
注意:我沒有使用任何ORM框架,也沒有計劃使用它。
你能說一點關於你的類層次結構? Employee是User的一個子類,還是兩個實體之間存在某種聯繫?此外,您期望從DAO返回哪些參考類型? – jtoberon
@jtoberon是員工和客戶是用戶類型。我所有的是用戶ID。基於這些ID,我必須查詢同一個表,如果用戶類型爲customer,則獲取'Customer',如果類型爲employee,則獲取'Employee'。 – doctrey