Refactoring to Patterns 讀書筆記(五)

應用 Composed Method 模式

  這大概是最簡單的模式之一了,甚至可能有人會覺得如此簡單的咚咚居然被成爲“模式”是非常可笑的。不過,Kent Beck 曾說過:“some of his best patterns are those that he thought someone would laugh at him for writing.”Kent 就是在他的 Smalltalk Best Practice Patterns 一書提出這個模式:Composed Method。


  良好的 Composed Method 的特徵是,在方法體中,所有的代碼段都處於同樣的細節級別之上。比如說上圖中上半部分所展示的代碼,最內層 if 結構中的代碼表達的是如何擴展該類使用的存儲結構,而倒數第三句表達的是添加一個元素。也就是說前者是關於該類內部細節的,而後者是關於該類外部行爲的。 重構之後的代碼,則顯得乾淨漂亮很多,三段代碼都處於同樣的細節級別之上,而命名良好的小方法也更容易讓人理解這段代碼的含義。

  在重構爲 Composed Method 模式的過程中,常常會多次反覆應用 Extract Method 過程,直到目標 Composed Method 中大部分(並非所有)工作都是通過調用其他方法完成的。如果抽取了太多的代碼放到一個方法中,那麼有可能會使得你找不到一個合適的名字來命名這個新的方法。在這種情況下,就需要應用 Inline Method 過程將這些代碼放回原來的方法中去,再想想別的辦法將之解構。

  如果在這項重構的過程中,在同一個類裏面產生了大量由 Composed Method 調用的私有小方法,那麼就可能需要應用 Extract Class 過程進一步進行重構。

 
發佈了105 篇原創文章 · 獲贊 3 · 訪問量 40萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章