閒聊31天重構 第3,4天 方法提公 降低方法

2021-08-20 18:03:28 字數 1003 閱讀 1725

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,所以是在國外的社群上閒逛的時候鏈結過去的。記得當時一口氣看完了整個系列並沒有多少感覺,因為這些基本上專案都在使用,只是我們沒有專門把它...