(转载)重构技术在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 MethodRefactor-->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 Conditionalif判断有点复杂选中-->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
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值