1. 程式人生 > 其它 >重構:改善既有程式碼的設計 第七章 讀書筆記

重構:改善既有程式碼的設計 第七章 讀書筆記

第7章 封裝
7.1 封裝記錄(Encapsulate Record)

  曾用名:以資料類取代記錄;

  做法:1- 對持有記錄的變數使用封裝變數,將其封裝到一個函式中。 記得為這個函式取一個容易搜尋的名字。

               2- 建立一個類,將記錄包裝起來,並將記錄變數的值替換為該類的一個例項。然 後在類上定義一個訪問函式,用於返回原始的記錄。修改封裝變數的函式,令 其使用這個訪問函式。

7.2 封裝集合(Encapsulate Collection)

  動機:集合的成員變數可以直接被修改,而封裝它的類則全然不知,無法介入。

為避免此種情況,我會在類上提供一些修改集合的方法——通常是“添 加”和“移除”方法。這樣就可使對集合的修改必須經過類,當程式演化變大時, 我依然能輕易找出修改點。

7.3 以物件取代基本型別(Replace Primitive with Object)

7.4 以查詢取代臨時變數(Replace Temp with Query)

7.5 提煉類(Extract Class)


7.6 內聯類(Inline Class)

  和提煉類相反的操作
7.7 隱藏委託關係(Hide Delegate)

      代理操作,還是直接引用


7.8 移除中間人(Remove Middle Man)

  和隱藏委託關係是相反的操作
7.9 替換演算法(Substitute Algorithm)

  使用演算法簡化程式碼