重構-Big Refactorings

Refactor
(圖片來自: http://sourcemaking.com/)

不知為何,原本網頁的程式碼都沒有編排了! 擠成一堆根本很難看懂啊! 是逼我去買書看嗎? 囧rz
以下為學習 Big Refactorings 的筆記.

Convert Procedural Design to Objects

Procedural Style 程式碼 - 將資料封裝到物件中,打散方法中一大串的程式碼(拆成多個小方法?)並封裝至物件中.

可看說明的圖比較好懂. OrderCalculator 是一個 Procedural Style 的程式碼, Order 和 OrderLine 只是單純用來紀錄的資料物件. 經過重構後,將原本 OrderCalculator 中的兩個方法分解並放到合適的資料物件中.

Extract Hierarchy

一個做了太多事情的類別由尤其是有很多條件判斷來決定行為的程式碼 - 用繼承的方式來取代條件判斷.

Separate Domain from Presentation

包括商業邏輯的使用者介面程式 - 將商業邏輯抽取出來(MVC).

Tease Apart Inheritance

同時代表兩個繼承觀念的一個繼承家族 - 拆成兩個繼承家族並用 Delegate 的方式彼此引用對方.

當繼承家族某一層不斷出現使用相同形容詞的子類別,你很有可能正在一個繼承架構上付予兩個繼承觀念.

The Nature of the Game

大規模的重構需要時間及詳細的計劃.

0 則回應: