文章詳情頁
java - 如何方便某個(gè)類在以后的拓展中比較方便的添加屬性?
瀏覽:139日期:2023-11-16 15:20:16
問題描述
假設(shè)有地圖上有一個(gè)醫(yī)院和公路兩個(gè)標(biāo)識,而這兩個(gè)標(biāo)識擁有屬于自己的屬性數(shù)據(jù):例如 醫(yī)院有等級、建筑物數(shù)量、病人數(shù)量,占地面積、名字等屬性;公路有名字、等級、長度、建成時(shí)間等屬性。 即不同類型的地圖標(biāo)識有不同的屬性數(shù)據(jù),同時(shí)也需要考慮將來還會(huì)添加新的屬性。請問大家,能否說一個(gè)大概的設(shè)計(jì)思路(只是靜態(tài)類圖的設(shè)計(jì)思路)? PS:我自己想的是通過裝飾者模式來實(shí)現(xiàn),但是那樣的話在以后的擴(kuò)展中每當(dāng)添加一個(gè)屬性時(shí)就要對原來的類再進(jìn)行一次裝飾,或者直接侵入原先設(shè)計(jì)好的類,添加屬性。
問題解答
回答1:haha ,為何不用Dictionary類型,比如說使用map來存儲鍵值對?
回答2:應(yīng)該要符合開閉原則,一個(gè)實(shí)體類創(chuàng)建好后最好不要做修改,使用繼承就可以了,在原來的屬性上增加新的屬性,但是又不破壞原來的結(jié)構(gòu)
回答3:對象組合優(yōu)先于繼承
標(biāo)簽:
java
上一條:java常用設(shè)計(jì)模式下一條:java - 打印電子面單
相關(guān)文章:
1. golang - 用IDE看docker源碼時(shí)的小問題2. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題3. Span標(biāo)簽4. mysql - 記得以前在哪里看過一個(gè)估算時(shí)間的網(wǎng)站5. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?6. docker start -a dockername 老是卡住,什么情況?7. docker gitlab 如何git clone?8. dockerfile - 我用docker build的時(shí)候出現(xiàn)下邊問題 麻煩幫我看一下9. boot2docker無法啟動(dòng)10. docker-compose 為何找不到配置文件?
排行榜

熱門標(biāo)簽