我正在用JAVA SE開發一個應用程序,在SQL Server中有一個數據庫。實例化圖像:繼承,分隔的類或其他?
在此應用中,我將有三個類型的圖像:
- 急救符號
- 危險符號
- 績效指標符號
所有圖像具有以下屬性:
imageID - int
imageDescription - String
image - ImageIcon
因此,拳援助和環境績效指標圖像需要這個屬性:
isUsedInRiskAssessment - boolean
我的問題:什麼是最好的方法來實現這個結構?
繼承:(在鏈接圖像)
http://img194.imageshack.us/img194/6871/inheritance.png
我知道繼承是多次被稱爲「邪惡」,但似乎在這種情況下,一個有效的選項,除了有一個子類,而任何其他屬性。
各個班級: http://img580.imageshack.us/img580/511/separated.png
還是其他?
在我的業務層中,我希望能夠將所有圖像(不管最終類型)返回給GUI。 我也有類Image
和另一類叫ImageType
。但在這種情況下,Image
,當ImageType
是危險標誌,將有一個未使用的屬性 - isUsedInRiskAssessment
。
這也影響我要在數據庫中創建表的方式。
希望我已經說清楚了。謝謝。
我按照你的建議,通過使屬性'isUsedInRiskAssessment'一個'Boolean'。通過閱讀Stephan的評論,我還認爲最好是在Enum(在Image類中嵌套Enum),指出圖像的類型。謝謝! – 2012-02-16 14:29:34
不客氣,@PedroDuarte。 – 2012-02-16 16:49:45
有時使用'true','false'和'null'的未使用布爾屬性肯定是一種不好的做法。如果你將不得不添加一個新的類型呢?比你將不得不重寫整個代碼。 **千萬不要這樣做** – user219882 2012-02-16 16:55:05