重構(gòu)代碼設(shè)計精要

extract method 提煉方法 (110)
將代碼放進一個獨立函數(shù)中叽赊,并讓函數(shù)名稱解釋該函數(shù)的用途

pull up field 字段上移 (332)
兩個子類擁有相同的字段沧烈,將該字段移動到超類。

extract class 提煉類(149)
某個類做了應(yīng)有兩個類做的事荸百,建立一個新類稽坤,將相關(guān)字段和函數(shù)從舊類搬到心類。

move method 搬移函數(shù)
程序中渔伯,有個函數(shù)與其所駐類之外的另一個類進行更過交流顶霞,調(diào)用后者,或被后者調(diào)用锣吼,在該函數(shù)最常引用的類中建立一個新函數(shù)选浑,將舊函數(shù)變成一個單純的委托函數(shù),或是將舊函數(shù)完全移除玄叠。

encapsulate field 封裝字段
將其聲明為private古徒,并提供相應(yīng)的訪問函數(shù)。安全問題读恃,如果不封裝其他地方修改對象中的屬性隧膘,該對象的使用者并不知情代态。

move field 搬移字段
與4相同意思。

duplicated code 重復(fù)代碼 (76)

form template method 塑造模板函數(shù) (345)
你有一些子類疹吃,其中相應(yīng)的某些函數(shù)蹦疑,以相同的順序執(zhí)行類似的操作,但各個操作的細節(jié)上有所不同萨驶。
將這些操作分別放進獨立函數(shù)中歉摧,并保持他們都有相同的簽名。于是原函數(shù)也變得相同了腔呜,將原函數(shù)上移到超類叁温。
調(diào)用的時候調(diào)用超類中的原函數(shù),通過多態(tài)指定調(diào)用的子類育谬。
設(shè)計模式中的Template method 注重順序券盅。(我現(xiàn)在做的項目中edi導(dǎo)出報文使用的就是模板方法模式)

substitute Algorithm 替換算法 (139)
將函數(shù)本體替換為另一個算法(注意if判斷固定幾個值時,可以把固定的幾個值放入集合中 139)

replace temp with query 以查詢?nèi)〈R時變量 (120)
你的程序以一個臨時變量保存某一表達式的運算結(jié)果膛檀,將這個表達式提煉到一個獨立函數(shù)锰镀,將這個臨時變量的所有引用點替換為對新函數(shù)的調(diào)用,此后咖刃,新函數(shù)就可以被其他函數(shù)調(diào)用泳炉。

split temporary variable 分解臨時變量
你的程序某個臨時變量被幅值超過一次,他即不是循環(huán)變量嚎杨,也不被用于收集計算結(jié)果花鹅,針對每一次賦值,創(chuàng)造一個對立的枫浙,對應(yīng)的臨時變量(final)

Intriduce paramter object 引入?yún)?shù)對象( 295)
某些參數(shù)總是很自然的同時出現(xiàn)刨肃,以一個對象取代這些參數(shù)。(如startDate箩帚,endDate)

preserve whole object 保持對象完整 (288)
你從某個對象取出若干值真友,將他們作為某一次函數(shù)調(diào)用時的參數(shù),改為傳遞整個對象紧帕。

replace method with method object 以函數(shù)對象取代函數(shù) (135)
你有一個大型函數(shù)盔然,其中對局部變量的使用使你無法采用提煉函數(shù),將這個函數(shù)放進一個單獨對象中是嗜,如此以來局部變量就變成了對象中的一個字段愈案,然后你可以在同一個對象中將大型函數(shù)分解成多個小型函數(shù)。

decompose conditional 分解條件表達式 (238)
有一個復(fù)雜的條件表達式語句鹅搪,從 if then else 三個段落中分別提煉獨立函數(shù)站绪。(每一個等號都有其特定意義,通過函數(shù)名稱標注)

extract interfact 提煉接口 (341)
若干客戶使用類接口中的同一子集涩嚣,或者兩個類的接口有部門相同崇众,將相同的子集提煉到一個獨立接口中掂僵。(接口彌補了繼承航厚,通用也可以通過繼承的方式理解接口類與實現(xiàn)類)

Long parameter list 過長參數(shù)列
太長參數(shù)類導(dǎo)致難以理解。太多參數(shù)會造成前后不一致,不易使用旬昭,而且一旦你需要更多數(shù)據(jù)旧噪,舊不得不修改他。

inline class 將類內(nèi)聯(lián)化 (154)
某各類沒有做太多事情麻顶,將這個類所有特性搬移到另一個類中赦抖,然后移除原類。與提煉類相反辅肾。

作者:樂樂plus
鏈接:https://juejin.cn/post/6962796851544195109
來源:掘金
著作權(quán)歸作者所有队萤。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處矫钓。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末要尔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子新娜,更是在濱河造成了極大的恐慌赵辕,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件概龄,死亡現(xiàn)場離奇詭異还惠,居然都是意外死亡,警方通過查閱死者的電腦和手機私杜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門蚕键,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人衰粹,你說我怎么就攤上這事锣光。” “怎么了寄猩?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵嫉晶,是天一觀的道長。 經(jīng)常有香客問我田篇,道長替废,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任泊柬,我火速辦了婚禮椎镣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘兽赁。我一直安慰自己状答,他們只是感情好冷守,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惊科,像睡著了一般拍摇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上馆截,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天充活,我揣著相機與錄音,去河邊找鬼蜡娶。 笑死混卵,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的窖张。 我是一名探鬼主播幕随,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼宿接!你這毒婦竟也來了赘淮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤澄阳,失蹤者是張志新(化名)和其女友劉穎拥知,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體碎赢,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡低剔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了肮塞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片襟齿。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖枕赵,靈堂內(nèi)的尸體忽然破棺而出猜欺,到底是詐尸還是另有隱情,我是刑警寧澤拷窜,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布开皿,位于F島的核電站,受9級特大地震影響篮昧,放射性物質(zhì)發(fā)生泄漏赋荆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一懊昨、第九天 我趴在偏房一處隱蔽的房頂上張望窄潭。 院中可真熱鬧,春花似錦酵颁、人聲如沸嫉你。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽幽污。三九已至嚷辅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間油挥,已是汗流浹背潦蝇。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工款熬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留深寥,地道東北人。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓贤牛,卻偏偏與公主長得像惋鹅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子殉簸,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

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