2011-08-25 8 views
1

我構建的解決方案中的數據存儲是數據庫,隊列和Csv文件。當某些功能被共享時,設計數據層,多接口或單接口的更好方法是什麼?

其中一些功能在它們兩者中都是常見的,例如, Csv文件和數據庫都有GetNames()方法 - 名稱信息駐留在CSV和DB中,其中一些方法僅適用於DB而不適用於CSV。 GetAddressOfPerson(Person person)是一種可用於DB的方法,因爲DB包含地址信息,但不包含地址信息,因爲它們沒有地址信息。

另一個例子是屬性。一些屬性很常見,例如bool IsTestMode對於兩個DAO都很常見,但有些不是PersonsFilePath

雖然架構,我創建了一個接口:IPersonDao它包含所有的方法和任何類與實現的屬性。

的沈志南實施IPersonCsvDao和IPersonDBDao和IPersonQueueDao實現所有的方法和屬性,然而,他們拋出「未實現例外」,在它們的實現,如果方法不屬於DAO 例如 CsvDao:

List<Address> GetPersonAddress(Person person) 
{ 
throw new NotImplementedException(); 
} 

DBDao:

List<Address> GetPersonAddress(Person person) 
{ 
//connect to db table 
//return list<address> 
} 

QueueDao:

List<Address> GetPersonAddress(Person person) 
{ 
throw new NotImplementedException(); 
} 

我不知道是否因爲有很多方法,這還沒有實現的異常,這是正確的。我不確定應該爲此解決方案創建數據層的最佳方式是什麼?

回答

0

由於睦,我明白你要實現樹狀結構,其中本類有一個共同的properties(寫他們在主流基地class/interface),但推導一定程度,班成爲defere slitly更多(其中一些人仍然共享相同的functions/properties,其中一些人共享其他人),從這一點開始,您將爲每個班級實施新的基礎班級。

希望這很清楚我的意思。

相關問題