2012-09-07 35 views
0

我正在實施一些基本的DAO操作,但在我的數據庫中,我有不同的表格,具有完全相同的結構。重複的DAO對象功能

舉例來說,如果我配置的汽車,具有特定的選項,我可能有一個配置表具有以下字段:

Configuration 

- UID id 
- varchar name 
- UID interiorColor 
- UID exteriorColor 

每種顏色表看起來像這樣:

InteriorColor/ExteriorColor 
- UID id 
- varchar name 
- varchar description 
- int cost 

如果我正在創建用於DAO模式的代表性對象(Configuration,InteriorColor等),是否需要爲InteriorColorExteriorColor重複基本相同的對象?

我想簡單地寫一個抽象類,然後擴展它爲每一個獨特的類型不覆蓋任何方法,但它只是感覺奇怪......

回答

0

如果你有過的表沒有選擇,你必須去在當前的表結構之前,我會建議你可以有一個接口顏色和一個代表兩者的類COLOR。接口將確保您使用的是多態,所以稍後您可以靈活地對它進行子類化,並根據需要添加或覆蓋現有的行爲。

+0

我認識到這是一個選擇 - 但是你能否提出一個案例,爲什麼一個班級在這種情況下應該代表內部和外部顏色?對兩者使用相同的類將允許我將外部顏色分配給內部顏色,反之亦然,從而打破了我的數據模型。提供達到不一致數據模型的手段的原因是什麼? – JoshC13

+0

大致上,類圖與數據模型不匹配。我們必須將類圖中的類映射到數據模型。你仍然可以使用一個類,但你必須引入一個類型變量來區分它是什麼類型的對象。或者你可以有兩個子類。你必須看到你的要求哪一個更合適。 – Atul

+0

就是這樣 - 我有非常寬鬆的要求。這個問題是針對潛在方法的最佳實踐和優點/缺點。我或多或少地在尋找關於爲什麼一種方法比另一種更常用的方法。 – JoshC13