重構第2天 方法搬移(Move Method)

2022-03-24 15:56:22 字數 1524 閱讀 6668

現在就重構來說是非常普通的,雖然我們經常會漏掉或忽略一些需要重構的地方。方法搬移,正如所定義的那樣,把方法搬移到更適合他的位置。讓我們看看下面這一段重構前的**:

理解:方法搬移,正如所定義的那樣,把方法搬移到更適合他的位置。

詳解:如果乙個類中某個方法,經常被其他類使用(比自身使用的次數還多),或者這個方法本身不適合這個類,可以考慮把這個方法搬移到更適合他的類中。

public

class

bankaccount

public

int accountage

public

int creditscore

public accountinterest accountinterest

public

double

calculateinterestrate()

}public

class

accountinterest

public

accountinterest(bankaccount account)

public

double

interestrate

}public

bool

introductoryrate

}}

重構後的**:

1

public

class

bankaccount29

10public

int accountage

11public

int creditscore

12public accountinterest accountinterest

131415}

16public

class

accountinterest

1719

20public

accountinterest(bankaccount account)

2124

25public

double

interestrate

2628}29

30public

bool

introductoryrate

3133}34

35public

double

calculateinterestrate()

3645 }

我們將calculateinterestrate方法從bankaccount類搬移到 accountinterest類中,因為這個方法在accountinterest類中使用,而在自身沒有看到使用。並且calculateinterestrate方法更適合accountinterest類。

搬移後大家可以看到bankaccount類的職責也單一,同時calculateinterestrate也放到了經常使用且適合它的類中了,所以此重構是乙個比較好的重構,能讓整個**變得更加合理。

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

d 以下為原來的 public abstract class vehicle class car extends vehicle class motorcycle extends vehicle enum directionm 這段 有什麼問題?z vehicle的兩個子類car,motorcycl...

第2天 移動方法

我覺得這個其實沒什麼就是說把某些方法移動到常用的類裡面去 這個應該在我們寫程式的時候潛意識裡面就會做到的 例子如下 錯誤的 code public class bankaccount public int accountage public int creditscore public accoun...

31天重構學習筆記2 移動方法

摘要 由於最近在做重構的專案,所以對重構又重新進行了一遍學習和整理,對31天重構最早接觸是在2009年10月份,由於當時沒有訂閱sean chambers的blog,所以是在國外的社群上閒逛的時候鏈結過去的。記得當時一口氣看完了整個系列並沒有多少感覺,因為這些基本上專案都在使用,只是我們沒有專門把它...