首页 > 移动平台 > 详细

《Android Studio实战 快速、高效地构建Android应用》--三、重构代码

时间:2020-02-05 15:42:51      阅读:61      评论:0      收藏:0      [点我收藏+]

要成为高效的Android程序员,需要头脑灵活,能够在开发、调试和测试的过程中重构代码,重构代码最大的风险是可能会引入意外的错误,Android Studio通过分析某些具有危险性的重构操作来降低风险,并接着激活Find工具窗口,应该将所有重要的重构修改单独做一次Git提交,以便回退。

Refator this菜单(Ctrl+Alt+Shift+T):

技术分享图片

重命名

在project窗口选中类文件,Ctrl+Alt+Shift+T唤出重构菜单,选择Rename,出现的对话框允许重命名类,以及该名称在注释、测试用例和继承类中所有出现的地方

技术分享图片

修改签名

该操作允许修改方法的以下属性:可见性、名称、返回类型、参数、抛出异常

将光标置于方法名Ctrl+Alt+Shift+T唤出重构菜单,选择Change Signature

类型迁移

允许把一种Java类型改为另一种

移动

  • 移动源文件
    • 在project窗口拖拽源文件
    • 选中源文件,用重构菜单的Move
  • 移动成员
    • 光标置于该行,用重构菜单的Move项,能够把成员从一个类移到另一个类中

复制

...

安全删除

Safe Delete在执行删除之前查找该资源的依赖

抽取

Extract有一系列操作:抽取变量、抽取常量、抽取字段、抽取参数、抽取方法

抽取变量

private String saySomething(){
        return "something";
    }

光标置于硬编码的"something"任意位置,Ctrl+Alt+Shift+T选择Extract的Variable(Ctrl+Alt+V),抽取本地变量并根据硬编码的字符串来命名它

private String saySomething(){
        final String something = "something";
        return something;
    }

抽取常量

Ctrl+Alt+C

抽取字段

会将一个本地变量转换为类中的一个成员

private Date getDate(){
        return new Date();
    }

光标置于Date,Ctrl+Alt+Shift+T选择Extract的Field(Ctrl+Alt+F)

public class Sandbox{

    private Date mDate;

    private Date getDate(){
        mDate = new Date();
        return mDate;
    }
}

抽取参数

抽取变量并将其作为所在方法的参数

private Date getDate(){
        return new Date();
    }

光标置于Date,Ctrl+Alt+Shift+T选择Extract的Parameter(Ctrl+Alt+P)

private Date getDate(Date date){
        return date;
    }

抽取方法

选择一行或多行连续代码并将它们置于一个单独的方法中

private String methodHello(){
        String greet = "hello";
        StringBuilder stringBuilder = new StringBuilder();
        for(int i=0; i<10; i++){
            stringBuilder.append(greet + i);
        }
        return stringBuilder.toString();
    }

    private String  methodGoodbye(){
        String greet = "Goodbye";
        StringBuilder stringBuilder = new StringBuilder();
        for(int i=0; i<10; i++){
            stringBuilder.append(greet + i);
        }
        return stringBuilder.toString();
    }

选中

StringBuilder stringBuilder = new StringBuilder();
        for(int i=0; i<10; i++){
            stringBuilder.append(greet + i);
        }
        return stringBuilder.toString();

Ctrl+Alt+Shift+T选择Extract的Method(Ctrl+Alt+M)

技术分享图片

扫描文件发现还有一个相同的代码块实例

技术分享图片

@NonNull
    private String getGreet(String greet) {
        StringBuilder stringBuilder = new StringBuilder();
        for(int i=0; i<10; i++){
            stringBuilder.append(greet + i);
        }
        return stringBuilder.toString();
    }

    private String methodHello(){
        String greet = "hello";
        return getGreet(greet);
    }

    private String  methodGoodbye(){
        String greet = "Goodbye";
        return getGreet(greet);
    }

《Android Studio实战 快速、高效地构建Android应用》--三、重构代码

原文:https://www.cnblogs.com/hhhqqq/p/12263708.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!