重構第十二章
總結
本章展示的是整個系統(tǒng)的整體重構埠啃。
1.Tease Apart Inheritance(梳理并分解繼承體系):某個繼承體系忱嘹,同時承擔兩項責任怎栽。建立兩個繼承體系俱饿,并通過委托關系讓其中一個可以調用另一個糟港。
2.Convert_Procedural_Design_To_Objects(將過程化設計轉化為對象設計):你手上有一些代碼琉兜,以傳統(tǒng)的過程化風格寫就凯正。將數(shù)據(jù)記錄編程對象,將行為分開豌蟋,并將行為移入相關對象之中廊散。
3.Spearate Domain from Presentation(將領域和表述/顯示分離):將數(shù)據(jù)和邏輯進行分離,最明顯的使用時MVC模式的應用梧疲。
4.Extract Hierarchy(提煉繼承體系):你有某個class做了太多(過多)工作允睹,其中一部分是以大量條件式完成的。建立繼承體系幌氮,以一個subclass表示一種特殊情況缭受。
讀書第一遍重構思路
Tease Apart Inheritance(梳理并分解繼承體系)和Extract Hierarchy(提煉繼承體系)是為了對繼承體系的重構,其中前者是將原本存在的繼承體系该互,根據(jù)不同的職責進行分離米者;后者是將一個任務繁雜的class根據(jù)不同任務的條件式,進行繼承系統(tǒng)的創(chuàng)建宇智。
Convert_Procedural_Design_To_Objects(將過程化設計轉化為對象設計)是為了將過程化的程序轉變?yōu)閷ο蠡某绦蚵悖怪梢允褂妹嫦驅ο蟮奶匦裕讛U展普筹。
Spearate Domain from Presentation(將領域和表述/顯示分離)最適用的地方便是在寫GUI的時候败明,將需要展示的數(shù)據(jù)和邏輯進行分離,即MVC模式太防。
注意
重構必須在有單元測試的情況下,保證之前的功能修改后不收影響酸员。切記Q殉怠!幔嗦!