(转载)重构技术在Android Studio中的应用

(转载)https://www.jianshu.com/p/516ab40464a7

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

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

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

重新组织函数

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

名称 何时需要 做法
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..

小礼物走一走,来简书关注我



作者:DylanXing
链接:https://www.jianshu.com/p/516ab40464a7
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

猜你喜欢

转载自blog.csdn.net/zhuhai__yizhi/article/details/82656420