使用Android Studio對代碼進行重構

iogc9433 8年前發布 | 148K 次閱讀 Android開發 移動開發

來自: http://blog.csdn.net/guijiaoba/article/details/50608606


使用Android Studio對代碼進行重構


簡介

2013年Google I/O大會上,谷歌推出新的Android開發環境——Android Studio,從此Android程序員有了新的選擇,使用Android Studio進行App開發。AndroidStudio是一項全新的基于IntelliJ IDEA的Android開發環境。類似于Eclipse ADT插件,現在已經成為了官方推薦的ide,同時Eclipse不再進行更新。

軟件開發中,經過幾個版本迭代,不少程序員會覺的以前的代碼架構可能不滿足日益增長的需求,這時候都會想到了重構,關于重構網上也有不少用于的資料。

重構資料

資料里面列舉了如下幾種方法,對代碼進行重構。

31天重構學習筆記01. 封裝集合
31天重構學習筆記02. 移動方法
31天重構學習筆記03. 提升方法
31天重構學習筆記04. 降低方法
31天重構學習筆記05. 提升字段
31天重構學習筆記06. 降低字段
31天重構學習筆記07. 重命名(方法,類,參數)
31天重構學習筆記08. 使用委派代替繼承
31天重構學習筆記09. 提取接口
31天重構學習筆記10. 提取方法
31天重構學習筆記11. 使用策略類
31天重構學習筆記12. 分解依賴
31天重構學習筆記13. 提取方法對象
31天重構學習筆記14. 分離職責
31天重構學習筆記15. 移除重復內容
31天重構學習筆記16. 封裝條件
31天重構學習筆記17. 提取父類
31天重構學習筆記18. 使用條件判斷代替異常
31天重構學習筆記19. 提取工廠類
31天重構學習筆記20. 提取子類
31天重構學習筆記21. 合并繼承
31天重構學習筆記22. 分解方法
31天重構學習筆記23. 引入參數對象
31天重構學習筆記24. 分解復雜判斷
31天重構學習筆記25. 引入契約式設計
31天重構學習筆記26. 避免雙重否定
31天重構學習筆記27. 去除上帝類
31天重構學習筆記28. 為布爾方法命名
31天重構學習筆記29. 去除中間人對象
31天重構學習筆記30. 盡快返回
31天重構學習筆記31. 使用多態代替條件判斷

Android Studio是基于優秀的ide的,ide提供了豐富的功能,很方便的對代碼進行重構,下圖是我的Android Studio Refactor菜單,部分快捷鍵與默認快捷鍵不同是因為方便而修改的。

Android Studio Refactor

古人云『工欲善其事必先利其器』,所以在對代碼進行重構前,需要詳細了解Android Studio提供的功能,下面對AS(Android Studio,后面簡稱AS)菜單進行簡單示例。

如何使用

鼠標光標選中或者放在代碼上,按下快捷鍵就可以彈出當前代碼可以使用的功能。
如下所示:

如何使用

代碼與操作示例

  • ChangeSignature,改變函數簽名,可以修改函數的名字,參數的順序,參數的名字。

Before:

    // 改變簽名
    void testChangeSignature(int second, int first) {
        System.out.println(first + "->" + second);
    }

Gif:

改變簽名

After:

    // 改變簽名
    void testChangeSignature(int one, int two) {
        System.out.println(one + "->" + two);
    }

修改前參數依次是second、first,修改是one、two。

  • ChangeClassSignatuere,改變類的簽名,可以修改類的泛型簽名

Before:

    // 改變類的簽名
    void testChangeClassSignatuere() {
        String second = "second";
        int first = 100;
        new ChangeClassSignatuere(second, first);
    }

// **分割線***

public class ChangeClassSignatuere {

private int first;
private String second;

public ChangeClassSignatuere(String second, int first) {
    this.first = first;
    this.second = second;
}

@Override
public String toString() {
    return "ChangeClassSignatuere{" +
            "second='" + second + '\'' +
            ",first=" + first +
            '}';
}

} </pre>

Gif:

改變類簽名

After:

    // 改變類的簽名
    void testChangeClassSignatuere() {
        String second = "second";
        int first = 100;
        new ChangeClassSignatuere<Activity>(second, first);
    }
// **分割線***

public class ChangeClassSignatuere<A> {

private int first;
private String second;

public ChangeClassSignatuere(String second, int first) {
    this.first = first;
    this.second = second;
}

@Override
public String toString() {
    return "ChangeClassSignatuere{" +
            "second='" + second + '\'' +
            ",first=" + first +
            '}';
}

}</pre>

 本文由用戶 iogc9433 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!