java中,重構、重載、重寫

一、什麼叫重構?編程

答:重構Refactoring)就是經過調整程序代碼改善軟件的質量、性能,使其程序的設計模式和架構更趨合理,提升軟件的擴展性和維護性,系統發展到必定階段後,使用重構的方式,不改變系統的外部功能,只對內部的結構進行從新的整理。經過重構,不斷的調整系統的結構,使系統對於需求的變動始終具備較強的適應能力。設計模式

 重寫:也叫覆蓋當一個子類繼承一父類,而子類中的方法與父類中的方法的名稱參數個數、類型都徹底一致時,就稱子類中的這個方法重寫了父類中的方法。(相對於繼承)架構

例子:函數

public class A{//定義類A
  public void s(){//定義方法s
  }
}
public class B extends A{//定義子類B,繼承A
  public void s(){//重寫父類A的方法s
  }
}

重載同一個類中,多個方法名同樣,參數列表不同的狀況就是方法的重載性能

方法重載例子:測試

public class Test
{
    public static void main(String[] args){
        Test ts = new Test() ;
        System.out.println(ts.ss("s1","s2")) ;
        System.out.println(ts.ss("s1")) ;
    }
    public String ss(String s1,String s2){
        return s1+s2 ;
    }
    public String ss(String s1){
        return s1 ;
    }
}

重寫與重載的區別:優化

1.重寫必須繼承,重載不用。spa

2.重寫的方法名,參數數目相同,參數類型兼容,重載的方法名相同,參數列表不一樣。.net

3.重寫的方法修飾符大於等於父類的方法,重載和修飾符無關。設計

4.重寫不能夠拋出父類沒有拋出的通常異常,能夠拋出運行時異常。

總結:

重寫是對方法自己從新編寫

重載函數名相同 參數個數不一樣。

重構重寫算是重構的一部分,但重構還包括對程序結構的優化。

 

1、舉個簡單的例子(修牆):

  通常來講有如下兩種方案

方案一:直接推到,新買磚,從新砌牆,一般會遇到難以找到適合砌牆邊的磚頭,砌牆工一般會破壞新磚來到達目的

方案二:拆牆,把牆磚一個個分解,從新利用,再加上新買少許磚,完美解決難以對齊的問題,而不用去破壞新磚

2、那麼重構能夠有兩種方法論:

1)所有推翻,從頭開始,相似於重寫(屬於重構的一種方式)

2)以迭代的方式進行重構,相似於重構中的結構優化(屬於重構的另外一種方式)

3、分解並重組

一、須要分解的狀況:

1)冗長的代碼;2)重複的代碼;3)邏輯不清晰的代碼;4)不遵循通用編程規範的代碼。

二、方法:

1)局部變量和參數;2)變量易名:提升代碼的清晰度;3)去除臨時變量;

4)使用多態取代多分支條件邏輯;5)繼承的使用;6)pattern的運用;

三、提煉方法和類:

(1)業務需求常常變動的地方;2)業務功能的清晰劃分;

四、重構策略

測試 -> 小修改 -> 測試 -> 小修改...

總結:重構是以微小的步伐來修改程序的。

五、Java代碼重構的一大方向:完成面向過程到面向對象的轉換。

 

參考:https://blog.csdn.net/tscyds/article/details/51228970

相關文章
相關標籤/搜索