国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

【重構(gòu)學(xué)習(xí)】11大型重構(gòu)

2019-11-14 13:33:02
字體:
供稿:網(wǎng)友

好了,前面所有的都是很簡單的例子,現(xiàn)在開始的是大型重構(gòu)。

對于大型重構(gòu)來說,情況復(fù)雜多變,耗時也會很長,前面的簡單重構(gòu)大多是在一個小時內(nèi)可以完成,但是對于大型重構(gòu)來說可能需要幾個月,甚至數(shù)年。如果是一個運(yùn)行中的系統(tǒng),重構(gòu)起來只能每天一點(diǎn)點(diǎn)去慢慢重構(gòu)。

恕我直言,在國內(nèi)恐怕這樣的公司也很少。所以我們要自己養(yǎng)成隨時重構(gòu)的習(xí)慣,不要挖坑給自己埋最好。沒誰能給你這么長時間重構(gòu),特別當(dāng)你是個低端程序員的時候。你得相信,你所有偷懶的舉動,都會給你以后的工作帶來麻煩。除非你明天走人了,那么你的鍋可能就給我背了,等你到了新的公司,你又發(fā)現(xiàn)你也成了一個背鍋的。

1、梳理并分解繼承體系

修改點(diǎn):某個繼承體系同時承擔(dān)兩個責(zé)任。如果繼承體系中的某一特定層級上的所有類,其子類名稱都以相同的形容詞開始,那么這個體系很可能就是承擔(dān)著兩項不同的責(zé)任。

做法:建立兩個繼承體系,并通過委托關(guān)系讓其中一個可以調(diào)用另一個。

動機(jī):混亂的繼承體系會導(dǎo)致重復(fù)代碼。

好吧,簡單來說,你可以理解為橋接模式。

2、將過程化設(shè)計轉(zhuǎn)為對象設(shè)計

修改點(diǎn):就是出現(xiàn)了C語言式的代碼

做法:將數(shù)據(jù)記錄變?yōu)閷ο螅瑢⒋髩K的行為分成小塊,并將行為移至相關(guān)對象中。

3、將領(lǐng)域和表述/顯示分離

修改點(diǎn):某些GUI類中包含了業(yè)務(wù)邏輯

做法:將領(lǐng)域邏輯分離出來,并為它們建立獨(dú)立的領(lǐng)域類

4、提煉繼承體系

修改點(diǎn):你為某個類做了太多工作,其中一部分以大量條件表達(dá)式完成

做法:建立一個繼承體系,以一個子類表示一種特殊情況

 

小總結(jié):

好吧,上面四個點(diǎn)寫得很概括,但是其實(shí)包括了很多東西。

越復(fù)雜的東西反而講起來越簡單。

就像我說我們來寫個注冊系統(tǒng)吧,多簡單,但是實(shí)施起來其實(shí)也不簡單。

很多時候我們都不愿意去改別人的代碼,因為可能業(yè)務(wù)就已經(jīng)很復(fù)雜了,再加上可能他也寫得爛。

你唯一必須做的是,至少保證自己的代碼別人維護(hù)起來很輕松,與君共勉吧!

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 灵石县| 枣庄市| 合水县| 雅江县| 稷山县| 璧山县| 始兴县| 京山县| 海伦市| 临沧市| 南靖县| 城口县| 龙门县| 信阳市| 襄垣县| 车致| 遵义县| 溆浦县| 伊宁县| 鄂伦春自治旗| 巴林左旗| 天气| 香港| 鹤山市| 青铜峡市| 漳平市| 徐州市| 大名县| 开鲁县| 定州市| 宁武县| 德令哈市| 东方市| 盘锦市| 江口县| 科技| 天津市| 玛曲县| 廊坊市| 新郑市| 湘潭县|