java - 如何方便某個(gè)類在以后的拓展中比較方便的添加屬性?
問(wèn)題描述
假設(shè)有地圖上有一個(gè)醫(yī)院和公路兩個(gè)標(biāo)識(shí),而這兩個(gè)標(biāo)識(shí)擁有屬于自己的屬性數(shù)據(jù):例如 醫(yī)院有等級(jí)、建筑物數(shù)量、病人數(shù)量,占地面積、名字等屬性;公路有名字、等級(jí)、長(zhǎng)度、建成時(shí)間等屬性。 即不同類型的地圖標(biāo)識(shí)有不同的屬性數(shù)據(jù),同時(shí)也需要考慮將來(lái)還會(huì)添加新的屬性。請(qǐng)問(wèn)大家,能否說(shuō)一個(gè)大概的設(shè)計(jì)思路(只是靜態(tài)類圖的設(shè)計(jì)思路)? PS:我自己想的是通過(guò)裝飾者模式來(lái)實(shí)現(xiàn),但是那樣的話在以后的擴(kuò)展中每當(dāng)添加一個(gè)屬性時(shí)就要對(duì)原來(lái)的類再進(jìn)行一次裝飾,或者直接侵入原先設(shè)計(jì)好的類,添加屬性。
問(wèn)題解答
回答1:haha ,為何不用Dictionary類型,比如說(shuō)使用map來(lái)存儲(chǔ)鍵值對(duì)?
回答2:應(yīng)該要符合開閉原則,一個(gè)實(shí)體類創(chuàng)建好后最好不要做修改,使用繼承就可以了,在原來(lái)的屬性上增加新的屬性,但是又不破壞原來(lái)的結(jié)構(gòu)
回答3:對(duì)象組合優(yōu)先于繼承
相關(guān)文章:
1. docker - 如何修改運(yùn)行中容器的配置2. nignx - docker內(nèi)nginx 80端口被占用3. python3.x - python連oanda的模擬交易api獲取json問(wèn)題第五問(wèn)4. java - SSH框架中寫分頁(yè)時(shí)service層中不能注入分頁(yè)類5. 為什么我ping不通我的docker容器呢???6. 關(guān)于docker下的nginx壓力測(cè)試7. 域名解析在Ubuntu64 9.04計(jì)算機(jī)上的Java應(yīng)用程序中不起作用所有其他軟件可以正確解析DNS8. javascript - js代碼獲取驗(yàn)證碼倒計(jì)時(shí)問(wèn)題9. docker-machine添加一個(gè)已有的docker主機(jī)問(wèn)題10. angular.js - angular內(nèi)容過(guò)長(zhǎng)展開收起效果
