重構讀書筆記 重構列表 20041028

2021-03-31 08:56:31 字數 4516 閱讀 4955

title:

重構讀書筆記:重構列表_20041028

content:

refactorings(重構)列表

1.

add parameter(

新增引數

) 2.

change bidirectional association to unidirectional(

將雙向關聯改為單項

) 3.

change reference to value (

將引用物件改為實值物件

) 4.

change unidirectional assocation to bidirectional(

將單項關聯改為雙向

) 5.

change value to reference (

將實值物件改為引用物件

) 6.

collapse hierachy(

摺疊繼承體系

) 7.

consolidate conditional expression(

合併條件式

) 8.

consolidate duplicate conditional fragments(

合併重複的條件判斷

) 9.

convert procedural design to objects(

將過程化設計轉化為物件設計

) 10.

de***pose conditional (

分解條件式

) 11.

duplicate observed data(

複製「被監視資料」

) 12.

encapsulate collection (

封裝群集

) 13.

encapsulate downcast(

封裝「向下轉型」動作

) 14.

encapsulate field

(封裝值域)

15.

extract class

(提煉類)

16.

extract hierarchy

(提煉繼承體系)

17.

extract inte***ce

(提煉介面)

18.

extract method

(提煉函式)

19.

extract subclass

(提煉子類)

20.

extract superclass

(提煉超類)

21.

form template method

(塑造模板函式)

22.

hide delegate

(隱藏委託關係)

23.

hide method

(隱藏函式)

24.

inline class

(將類內聯化)

25.

inline method

(將函式內聯化)

26.

inline temp

(將臨時變數內聯化)

27.

introduce assertion

(引入斷言)

28.

introduce explaining ariable

(引入解釋性變數)

29.

introduce foreign method

(引入外加函式)

30.

introduce local extension

(引入本地擴充套件)

31.

introduce null object

(引入null

物件) 32.

introduce prrameter object

(引入引數物件)

33.

move field

(搬移值域)

34.

move method(

搬移函式

) 35.

parameterize method

(令函式攜帶引數)

36.

preserve whole object

(保持物件完整)

37.

pull up constructor body

(建構函式本體上移)

38.

pull up field

(值域上拉)

39.

pull up method

(函式上拉)

40.

pull down field

(值域下降)

41.

pull down method

(函式下移)

42.

remove assignments to parameters

(移除函式的賦值動作)

43.

remove control flag

(移除控制標記)

44.

remove middleman

(移除中間人)

45.

remove parameter

(移除引數)

46.

remove setting method

(移除設定函式)

47.

rename method

(重新命名函式)

48.

replace array with object

(以物件取代陣列)

49.

replace conditionalwith polymorphi**

(以多型取代條件式)

50.

replace constructor with factory method

(以工廠方法取代建構函式)

51.

replace data value with object(

以物件取代資料值

) 52.

replace delegation with inheritance

(以繼承取代委託)

53.

replace error code with exception

(以異常取代錯誤碼)

54.

replace exception with test

(以測試取代異常)

55.

replace inheritance with delegation

(以委託取代繼承)

56.

replace magic number with symbolic constant

(以字面常量代替魔法數字)

57.

replace method with method object

(以函式物件取代函式)

58.

replace nested conditional with guard clauses

(以衛語句取代條件式)

59.

replace parameter with method

(以函式取代引數)

60.

replace parameter with explicit methods

(以明確函式取代引數)

61.

replace record with data class

(以資料類取代記錄)

62.

replace subclass with field

(以值域取代子類)

63.

replace temp with query

(以查詢取代臨時變數)

64.

replace type code with class

(以類取代型別碼)

65.

replace type code with state/strategy

(以state/strategy

取代性別碼)

66.

replace type code with subclass

(以子類取代型別碼)

67.

self encapsulate field

(自封裝值域)

68.

separate domain from presentation (

將領域和表述

/顯示分開

) 69.

separate query with modifier (

將查詢函式和修改函式分離

) 70.

split tempory variable(

剖解臨時變數

) 71.

substitue algorithm(

替換你的演算法

) 72.

梳理並分解繼承體系)

《重構》讀書筆記

再次看重構這本書,用了十幾分鍾,看完了原來斷斷續續用了差不多一週看完的第一章 沒有增加什麼新知識 僅對state stategy模式增加了點熟悉度 可見許久前學習第一章還是比較深入的,呵呵。還記得當時看得還是有點費力的。站的高度不同了,視角變化了,所以看得也快,看得也更精深。首先覺得第一章寫的真不賴...

重構 讀書筆記

1.重構的基本原則 新增新功能和重構是兩類工作。重構時,儘量不要新增新功能,除非發現了原來程式的錯誤。其實即使發現原來的錯誤,也應該把錯誤暫時記下來,待重構完成後,再修改原來的錯誤。重構就是不修改程式對外的表現形式,哪怕原來是錯誤的。2.重構時state模式的使用 當一個物件中的某個屬性需要改變類屬...

重構讀書筆記

年前參加了軟體重構的培訓,就像老師所說,幾天的培訓不會有實質的變化,主要的目的是出發更深層次的思考和不斷的實踐,1,duplicated code,重複 是最常見,醜陋的壞味道,有以下一些解決辦法 extract method pull up method template method 這個準則最...

重構讀書筆記

在一個基礎系統上進行增量開發是比較常見的。增量開發的過程中,一方面會因為系統的初始框架有部分不適應新需求而變更,另一方面是維護開發人員更換,程式設計習慣及能力的差異,對系統的框架理解不一致,在進度的壓力下破壞了系統的框架。無論是哪一種,都有必要階段性的進行重構,以償還技術債務。技術債務不斷累加的後果...

重構 讀書筆記

refactoring improving the design of existing code martin fowler chapter 1 例子1 根據不同型別電影,租期長短,計算 並輸出。寫到一個方法了。可能變化 增加 改變輸出樣式,電影型別分類可能會變,計費標準會變。只有優秀的人才能寫出...