d:以下為原來的**:
public
abstract
class
vehicle
class car extends vehicle
}class motorcycle extends vehicle
}enum direction
m:這段**有什麼問題?
z:vehicle的兩個子類car,motorcycle都用到turn方法,可以把這個方法提出來放到基類中。這樣不僅減少**量,而且提高了**的復用性。
public
abstract
class
vehicle
// other methods
}class car extends vehicle
class motorcycle extends vehicle
enum direction
m:總結一下,兩個子類都用到同乙個方法,把共性方法提到基類中。
z:降低方法剛好和上面的方法提公相反,方法提公就是基類中某個方法只有某個子類會用,那就提取到需要它的類中去。讓結構更清晰,提高**的可讀性。
原**:
public
abstract
class
vehicle
// other methods
}class car extends vehicle
class motorcycle extends vehicle
enum direction
重構後的**:
public
abstract
class
vehicle
class car extends vehicle
}class motorcycle extends vehicle
enum direction
閒聊31天重構 第0天 序言
m 這是我在學習 refactoring 的時候,由於理解能力不足,很多地方都看不太懂。這時候發現it少年鏈結 c版本 他翻譯了一外國英文鏈結對refactoring.com重構知識31天學習的總結。在這裡我將先借用的案例,參考it少年的翻譯,編寫重構番外篇。在理解大體知識後,再對原著 refact...
重構第2天 方法搬移(Move Method)
現在就重構來說是非常普通的,雖然我們經常會漏掉或忽略一些需要重構的地方。方法搬移,正如所定義的那樣,把方法搬移到更適合他的位置。讓我們看看下面這一段重構前的 理解 方法搬移,正如所定義的那樣,把方法搬移到更適合他的位置。詳解 如果乙個類中某個方法,經常被其他類使用 比自身使用的次數還多 或者這個方法...
31天重構學習筆記2 移動方法
摘要 由於最近在做重構的專案,所以對重構又重新進行了一遍學習和整理,對31天重構最早接觸是在2009年10月份,由於當時沒有訂閱sean chambers的blog,所以是在國外的社群上閒逛的時候鏈結過去的。記得當時一口氣看完了整個系列並沒有多少感覺,因為這些基本上專案都在使用,只是我們沒有專門把它...