重構(gòu)(二) -- 重構(gòu)的原則

重構(gòu)的定義

  • 名詞:對軟件內(nèi)部結(jié)構(gòu)的一種調(diào)整,目的是在不改變軟件可觀察行為的前提下,提高其可理解性晌纫,降低修改成本
  • 動詞:使用一系列重構(gòu)手法,在不改變軟件可觀察行為的前提下調(diào)整其結(jié)構(gòu)
  • 所以重點是使軟件更容易被理解和修改永丝,不改變軟件可觀察行為即軟件功能一如既往

何時重構(gòu)

  • 添加功能時重構(gòu)
    重構(gòu)是一個快速流暢的過程锹漱,幫助理解代碼邏輯
  • 修補錯誤時重構(gòu)
  • 復(fù)審代碼時重構(gòu)

間接層

  • 大多數(shù)重構(gòu)都為程序引入了更多間接層,重構(gòu)往往把大型對象拆成多個小型對象慕嚷,把大型函數(shù)拆成多個小型函數(shù)
  • 間接層的價值:
    1:允許邏輯共享
    2:分開解釋意圖和實現(xiàn)哥牍,根據(jù)新的類或函數(shù)名稱
    3:隔離變化,不需要擔(dān)心一個對象的修改會影響到其他使用的地方
    4:封裝條件邏輯喝检,使用多態(tài)方式靈活而清晰地表達條件邏輯

重構(gòu)的難題

現(xiàn)在我們只能明顯看到重構(gòu)的好處嗅辣,但是還沒有獲得足夠的經(jīng)驗知道其局限性

  • 數(shù)據(jù)庫
    當(dāng)數(shù)據(jù)庫模型和對象模型變的不穩(wěn)定時,可以在之間插入一個分隔層挠说,幫助隔離兩個模型各自的變化
  • 修改接口
    重構(gòu)修改已發(fā)布接口時必須做到原始功能的兼容澡谭,可以盡量讓舊接口調(diào)用新接口并將老接口標(biāo)記為deprecated,并且謹慎發(fā)布接口
  • 難以通過重構(gòu)手法完成的設(shè)計改動
    可能存在某些核心設(shè)計決策损俭,無法以重構(gòu)手法修改蛙奖,可能就需要對選擇候選設(shè)計方案時的難度進行考慮。
  • 何時不該重構(gòu)
    將大塊頭軟件重構(gòu)為封裝良好的小型組件杆兵,然后逐一對組件做出重構(gòu)或重建的決定

重構(gòu)與性能

不應(yīng)該為了提高設(shè)計的純潔性而忽視性能

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末雁仲,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子琐脏,更是在濱河造成了極大的恐慌攒砖,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件日裙,死亡現(xiàn)場離奇詭異吹艇,居然都是意外死亡,警方通過查閱死者的電腦和手機昂拂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門受神,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人政钟,你說我怎么就攤上這事路克。” “怎么了养交?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瓢宦。 經(jīng)常有香客問我碎连,道長,這世上最難降的妖魔是什么驮履? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任鱼辙,我火速辦了婚禮廉嚼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哪亿。我一直安慰自己抒抬,他們只是感情好嗜憔,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著傍念,像睡著了一般。 火紅的嫁衣襯著肌膚如雪葛闷。 梳的紋絲不亂的頭發(fā)上憋槐,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音淑趾,去河邊找鬼阳仔。 笑死,一個胖子當(dāng)著我的面吹牛扣泊,可吹牛的內(nèi)容都是我干的近范。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼延蟹,長吁一口氣:“原來是場噩夢啊……” “哼顺又!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起等孵,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤稚照,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后俯萌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體果录,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年咐熙,在試婚紗的時候發(fā)現(xiàn)自己被綠了弱恒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡棋恼,死狀恐怖返弹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情爪飘,我是刑警寧澤义起,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站师崎,受9級特大地震影響默终,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一齐蔽、第九天 我趴在偏房一處隱蔽的房頂上張望两疚。 院中可真熱鬧,春花似錦含滴、人聲如沸诱渤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽勺美。三九已至,卻和暖如春鸦做,著一層夾襖步出監(jiān)牢的瞬間励烦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工泼诱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留坛掠,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓治筒,卻偏偏與公主長得像屉栓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子耸袜,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容