我想分類車輛,但我不知道什麼是最好的方式來做到這一點。如何分類車輛 - 繼承與接口
我爲什麼困惑? 如果你想想看,汽車可在多種方式分類:
1)自然車輛:陸用車,船舶&飛機。 2)歸類的另一種方式:動力汽車和非動力車輛喜歡拖拉機(非供電,只是附加有卡車),卡車等車輛的 3)載重性質:車輛可以被加載或沒有。讓我舉一個例子: 車輛 - >陸地車輛 - >動力/非動力 - >可加載/不可加載。
如果你看到,我創造了很多子類,但什麼它使用比其他財產的區別在於它是可加載與否。我也可以使用接口來做到這一點。實現可裝載的可供載入的車輛接口。
例如: 車輛 - > LandVehicle - >拖拉機 LandVehicle將實施像isPowered和isLoadable,這將通過作爲拖拉機虛實RESP被重寫接口。
我知道,繼承是爲「我能行」,「ISA」的關係和接口,但是如何使區別就在這裏,因爲它可以互換使用。
什麼是解決此類問題的最佳途徑。
解決這些問題的最好方法是使用*組合*而不是繼承*。有人可能會針對您的具體問題編寫答案,但請參閱:http://stackoverflow.com/questions/49002/prefer-composition-over-inheritance –
感謝WW。我不認爲這個作品可以幫助我,或者我可能需要再考慮一下,如果這真的有幫助。 – user3089214
多個屬性+屬性的多個組合== Decorator模式。 – dbugger