日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

重构全面总结

發布時間:2025/6/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 重构全面总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

《重構》為我們帶來了一種改進代碼的高效過程,從而徹底改變了面向對象設計的方式:?

? ? ?1)改進軟件設計(整理代碼)
? ? ?2)提高代碼質量和可讀性,使軟件系統更易理解和維護
? ? ?3)幫助盡早的發現錯誤
? ? ?4)提高編程速度
? ? ?改善設計、提高可讀性、減少缺陷都是為了穩住陣腳。良好的設計是成功的一半,停下來通過重構改進設計,或許會在當前減緩速度,但它帶來的后發優勢卻是不可低估的。

1. ??編寫代碼22宗罪

1. ?Duplicated ?Code重復代碼
2. ?Long Method 過長函數
3. ?Large Class 過大的類?
4. ?Long Parameter List 過長參數列 ?
5. ?Divergent Change 發散式變化(相對聚焦式)
6. ?Shotgun Surgery 霰彈式修改?
7. ?Feature Envy 依戀情節
8. ?Data Clumps 數據泥團 ?
9. ?Primitive Obsession 基本類型偏執
10. Switch Statement (switch 驚悚現身)
11. Parallel Inheritance Hierarchies 平衡繼承體系
12. Lazy Class(冗贅類)
13. Speculative Generality(夸夸其談未來性)
14. Temporary Field(令人迷惑的暫時值域)
16. Middle Man(中間轉手人)
17. Inappropriate Intimacy(狎昵關系)?
18. Alternative Classes with Different Interfaces(異曲同工的類)?
19. Incomplete Library Class(不完善的庫類) ? ? ??
20. Local Extension (引入本地擴展) 。
21. Data Class(純稚的數據類)
22. Refused Bequest(被拒絕的遺贈)

2. ?重新組織函數的九種方法

1. ?Extract Method 提煉函數
2. ?Inline Method 內聯函數
3. ?Inline Temp 內聯臨時變量
4. ?Replace Temp with Query 以查詢代替臨時變量
5. ?Introduce Explaining Variable 引入解釋性變量
6. ?Split Temporary Variable 分解臨時變量
7. ?Remove Assigments to Parameters 移除對參數的賦值
8. ?Replace Method with Method object 函數對象取代函數
9. ?Substitute Algorithm 替換算法

3. ?對象之間移動特性的八種方法

1. ?Move Method 移動函數
2. ?Move Field 搬移字段
3. ?Extract Class提煉類
4. ?Inline Class 將類內聯化
5. ?Hide Delegate 隱藏委托關系
6. ?Remove middle Man 移除中間人
7. ?Introduce Foreign Method 引入外加函數
8. ?Introduce Local Extension 引入本地擴展

4. ?重新組織數據的16種方法

1. ?Self Encapsulate Field 自封裝字段
2. ?Replace Data Value with Object 對象取代數據值
3. ?Change value to Reference 將值對象改為引用對象
4. ?Change Reference to Value 將引用對象改為值對象
5. ?Replace Array with Object 以對象取代數組
6. ?Duplicate Observed data 復制被監視數據
7. ?Change Unidirection Association to Bidirectional 將單向關聯改為雙向關聯
8. ?Change Bidirectional ?Association to Unidirection將雙向關聯改為單向關聯
9. ?Replace Magic Number with Symbolic Constant字面常量取代魔法數
10. Encapsulate Field 封裝字段
11. Encapsulate Coolection 封裝集合
12. Replace Record with Data Class 以數據類取代記錄
13. Replace Type Code with Class 以類來取代類型碼
14. Replace Type Code with Subclasses 以子類來取代類型碼
15. Replace Type Code with State/Strategy 以狀態/策略取代類型碼
16. Replace Subclass with Fieldls 以字段取代子類

5. ?簡化條件表達式

1. ?Decompose Conditional 分解條件表達式
2. ?Consolidate Conditional Expression 合并條件表達式
3. ?Consolodate Duplicate Conditional Fragments 合并重復的條件片段
4. ?Remove Control Flag 移除控制標記
5. ?Replace Nested Conditional with Guard Clauses 以衛語句取代嵌套條件表達式
6. ?Replace Conditional with Polymorphism 以多態取代條件表達式
7. ?Introduce Null Object 引入Null對象
8. ?Introduce Assertion 引入斷言

6. ?簡化函數調用

1. ?Rename Method 函數改名
2. ?Add Parameter 添加參數
3. ?Remove Parameter 移除參數
4. ?Separate Query from Modifier 將查詢函數和修改函數分離
5. ?Parameterize Method 令函數攜帶參數
6. ?Replace Parameter with Explicit Methods 以明確函數取代參數
7. ?Preserve whole object 保持對象完整
8. ?Replace Parameter with Methods 以函數取代參數
9. ?Introduce Parameter Object 引入參數對象
10. ?Remove setting Method 移除設置函數
11. ?Hide Method 隱藏函數
12. ?Replace Constructor with Factory Method 以工廠函數取代構造函數
13. ?Encapsulate Downcast 封裝向下轉型
14. ?Replace Error Code with Exception 以異常取代錯誤碼
15. ?Replace Exception with Test 以測試取代異常

7. ?處理概括關系

1. ?Pull Up Field 字段上移
2. ?Pull up Method 函數上移
3. ?Pull up Constructor Body 構造函數本體上移
4. ?Push down Method 函數下移
5. ?Push down Fiedld 字段下移
6. ?Extract Subclass 提煉子類
7. ?Extract Superclass 提煉超類
8. ?Extract Interface 提煉接口
9. ? Collapse Hierarchy 折疊繼承體系
10. ?From TemPlate Method 塑造模板函數
11. ?Replace Inheritance with delegation 以委托取代繼承
12. ? Replace delegation with Inheritance 以繼承代替委托

8. ?大型重構

1. ?Tease apart Inheritance 梳理并分解繼承體系
2. ?Convert Procedural design to Objects 將過程化設計轉化為對象設計
3. ?Separate Domain from from Presention 將領域和表述/顯示分離
4. ?Extract Hierarchy 提煉繼承體系


總結

以上是生活随笔為你收集整理的重构全面总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。