代码重构方法

6 重新组织函数
6.1 Extract Method(提炼函数)
一段代码存在重复,或者逻辑独立,提炼成函数,并让函数名可解释这段代码的功能。
无局部变量:
有局部变量:参数
6.2 Inline Method(内联函数)
内联函数的内容和函数名称一样清楚易懂,这个时候建议删除内联函数。
6.3 Inline Temp(内联临时变量)
临时变量只被赋值一次,在不影响可读性的基础下,删除该变量,直接引用表达式。
6.4 Replace Temp with Query(以查询取代临时变量)
使用查询函数取代临时变量。该方法影响性能。
6.5 Introduce Explaining Variable(引入解释性变量)
复杂的表达式难于理解和维护,用宏或函数取代,可增加可读性。
6.6 spli temporaty variable(分解临时变量)
临时变量赋值不止一次,需要拆分成多个,避免引入问题。
6.7 Remove Assignments to Parameters(移除对参数的赋值)
不要对输入参数进行赋值,影响代码可读性。
6.8 Replace Method with Method Object(以函数对象取代函数)
把方法定义为对象,从而封装方法的临时变量,以及支持方法的进一步拆分。
6.9 substitute Algorithm(替换算法)
替换函数内部的算法,如把switch和多个if判断修改为表驱动代码。


7 在对象之间搬移特性
todo


8 重新组织数据
8.1 self encapsulate Field(自封装字段)
对变量封装get/set函数。
或者定义一个类,包括构造、set/get等。
8.2 replace data value with object(以对象取代数据值)
对象类的数据(值)修改成对象(值和方法)
8.3 Change Value to reference(将值对象修改为引用对象)
todo
8.4 change reference to value(将引用对象修改为值对象)
todo
8.5 replace Array with Object(以对象取代数组)
同8.2
8.6 Duplicate Observed Data(复制被监视数据)
复制数据,使用Observer模式刷新数据,实现模块的分离。
8.7 Change Unidirectional Association ti Bidirectional(单向关联修改为双向关联)
8.8 Change Bidirectional Association ti Unidirectional (双向关联修改为单向关联)
8.9 Replace Magic Number with symbolic Constant(常量取代魔鬼数字)
最常见的手法。
8.10 Encapsulate Field(封装字段)
将数据隐藏起来。
8.11 Encapsulate collection (封装集合)
不要返回集合本身,不要让对象外看到集合。
8.12 Replace Record with Data Class(以数据类取代记录)
8.13 Replace Type Code with Class(以类取代类型码)
8.14 Replace Type Code with SubClass(以子类取代类型码)
8.15 Replace Type Code with State/Strategy(以状态/策略取代类型码)
8.16 Replace Subclass with Field(以字段取代子类)


9 简化条件表达式
9.1 Decompose Conditional (分解条件表达式)
把if、else段落提取为独立的函数。
9.2 Consolidate Conditional Expressiong(合并条件表达式)
条件表达式的条件不同,处理相同,考虑合并。
9.3 Consolidate Duplicate Conditional Fragments(合并重复的条件片段)
9.4 Remove Control Flag(移除控制标志)
用break或return语句取代控制标志。
9.5 Replace nested conditional with Guard Clauses(以卫语句取代嵌套条件表达式)
good。
9.6 Replace Conditional with Polymorphism(以多态取代条件表达式)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值