文章詳情頁
java - 如何方便某個類在以后的拓展中比較方便的添加屬性?
瀏覽:171日期:2023-11-16 15:20:16
問題描述
假設(shè)有地圖上有一個醫(yī)院和公路兩個標(biāo)識,而這兩個標(biāo)識擁有屬于自己的屬性數(shù)據(jù):例如 醫(yī)院有等級、建筑物數(shù)量、病人數(shù)量,占地面積、名字等屬性;公路有名字、等級、長度、建成時(shí)間等屬性。 即不同類型的地圖標(biāo)識有不同的屬性數(shù)據(jù),同時(shí)也需要考慮將來還會添加新的屬性。請問大家,能否說一個大概的設(shè)計(jì)思路(只是靜態(tài)類圖的設(shè)計(jì)思路)? PS:我自己想的是通過裝飾者模式來實(shí)現(xiàn),但是那樣的話在以后的擴(kuò)展中每當(dāng)添加一個屬性時(shí)就要對原來的類再進(jìn)行一次裝飾,或者直接侵入原先設(shè)計(jì)好的類,添加屬性。
問題解答
回答1:haha ,為何不用Dictionary類型,比如說使用map來存儲鍵值對?
回答2:應(yīng)該要符合開閉原則,一個實(shí)體類創(chuàng)建好后最好不要做修改,使用繼承就可以了,在原來的屬性上增加新的屬性,但是又不破壞原來的結(jié)構(gòu)
回答3:對象組合優(yōu)先于繼承
標(biāo)簽:
java
上一條:java常用設(shè)計(jì)模式下一條:java - 打印電子面單
相關(guān)文章:
1. css3 - 純css實(shí)現(xiàn)點(diǎn)擊特效2. css - 新手做響應(yīng)式布局, 斷點(diǎn)過后右側(cè)出現(xiàn)空白,求幫助,謝謝。3. mysql - 記得以前在哪里看過一個估算時(shí)間的網(wǎng)站4. javascript - 關(guān)于<a>元素與<input>元素的JS事件運(yùn)行問題5. MySQL中的enum類型有什么優(yōu)點(diǎn)?6. 大家好,我想請問一下怎么做搜索欄能夠搜索到自己網(wǎng)站的內(nèi)容。7. javascript - ES6 中能否把 class 屬性 方法 分文件?8. python - 能通過CAN控制一部普通的家用轎車嗎?9. css - 關(guān)于border-image10. mysql - 查詢字段做了索引為什么不起效,還有查詢一個月的時(shí)候數(shù)據(jù)都是全部出來的,如果分拆3次的話就沒問題,為什么呢。
排行榜

熱門標(biāo)簽