美文网首页
重构技术在Android Studio中的应用

重构技术在Android Studio中的应用

作者: DylanXing | 来源:发表于2017-04-20 15:54 被阅读0次

    以下内容总结自《重构—改善既有代码的设计》读书笔记

    顺便向大家推荐一下这本书

    重构—改善既有代码的设计

    重新组织函数

    如果要操作函数本身和局部变量,比如增加或删除,可以试试以下的方式

    名称 何时需要 做法
    Extract Method 需要提炼函数时 Refactor-->Extract-->Method
    Inline Method 函数本体和名称同样容易理解 Refactor-->Inline
    Inline Temp 有一个只被简单表达式赋值一次的临时变量 Refactor-->Inline
    Replace Temp with Query 有一个保存某一表达式的运算结构的临时变量 Refactor-->Replace Temp with Query
    Introduce Explaining Variable 有一个复杂的表达式 在表达式后调用.var
    Replace Method with Method Object 在一个大型函数中,对局部变量的过度使用导致无法使用Extract Method Refactor-->Extract-->Method Object, Refactor-->Move

    在对象间搬移特性

    想重新处理抽象粒度?快试试下面的

    名称 何时需要 做法
    Move Method 函数位置不对 Refactor-->Move
    Move Field 字段位置不对 Refactor-->Move
    Extract Class 一个类做了过多的事 Refactor-->Extract-->Super Class
    Inline Class 一个类做的事不够 Refactor-->Inline

    重新组织数据

    名称 何时需要 做法
    Self Encapsulate Field 直接访问字段的方式不太合适时 Refactor-->Encapsulate Fields
    Replace Magic Number with Symbolic Constant 有魔法数时 Extract-->Constant
    Encapsulate Field 有public修饰的字段时 Encapsulate Fields

    简化条件表达式

    名称 何时需要 做法
    Decompose Conditional if判断有点复杂 选中-->Extract-->Method

    简化函数调用

    要修改函数名、函数参数、函数可见度?

    名称 何时需要 做法
    Rename Method 一个方法名称不够具体 Rename
    Add Parameter 一个方法需要新参数 Change Signature
    Remove Parameter 一个方法不再需要某个参数 Change Signature
    Introduce Parameter Object 几个参数总是固定的一起出现 Extract-->Parameter Object...
    Hide Method 方法可见度修饰不合适时 Analyze-->Inspect Code-->Declaration access can be weaker
    Replace Constructor with Factory Method 应用工厂模式取代构造方法时 Replace Constructor with Factory Method...

    处理概括关系

    使用下面的一些方法去理清继承体系吧

    名称 何时需要 做法
    Pull Up Field 两个子类的某对属性的意思相同 Pull Members Up..
    Pull Up Method 子类的某些方法的执行结果相同 Pull Members Up..
    Pull Up Constructor Body 子类的构造方法内有重复的语句 在父类中建立执行这些语句的构造方法,子类构造方法改为调用父类的构造方法
    Pull Down Method 父类的某个方法只和部分子类有关 Pull Members Down..
    Pull Down Field 父类的某个属性只和部分子类有关 Pull Members Down..
    Extract Superclass 需要提取父类 Extract-->Superclass..
    Extract Interface 需要提取接口 Extract-->Interface..
    Replace Inheritance with Delegation 某个子类只需要用超类的一部分 Replace Inheritance with Delegation..

    相关文章

      网友评论

          本文标题:重构技术在Android Studio中的应用

          本文链接:https://www.haomeiwen.com/subject/kmelzttx.html