|
重构--在不改变软件外部行为的前提下,对其内部结构进行改变,使之更容易理解并便于修改 原因: 1、代码重复 2、冗长的子程序 3、循环过长或嵌套过深 4、内聚性太差的类 5、类的接口未能提供层次一致的抽象 6、拥有太多参数的参数列表 7、类的内部修改往往最局限于某部分 8、变化导致对多个类的相同修改 9、对继承体系的同样修改 10、case语句需要做相同的修改 11、同时使用的相关数据并未以类的方式进行组织 12、成员函数使用其它类的特征比使用自身类的特征还要多 13、过多使用基本数据类型 14、某个类无所事事 15、一系列传递流浪数据的子程序 16、中间人对象无事可做 17、某个类同其它类关系过于亲密 18、子程序命命不恰当 19、数据成员被设置为公用 20、某个派生类仅使用基类的很少一部分成员函数 21、注释被用于解释难懂的代码 22、使用了全局变量 23、在了程序调用前使用了设置代码,或在调用后使用了收尾代码 24、程序中的代码似乎是在将来的某个时候才会用到 数据级的重构: 用具名常量代替神秘数值 使变量名字更为清晰,传递更多的信息 将表达式内联化 用函数来代替表达式 引入中间变量 用多个单一用途变量代替某个多用途变量 在局部用途中使用局部变量而不是参数 将基础数据类型转化为类 将一组类型码转化为类或枚举类型 将一组类型码转换为一个基类及其相应派生类 将数据转换为对象 把群集封装起来 用数据类来代替传统记录 语句级重构: 分解布尔表达式 将得很要的布尔表达式转换成命名准确的布尔函数 合并条件语句不同部分中的重复代码片段 使用Break/return代替循环控件变量 在嵌套的If-then-else语句中一旦知道答案就立即返回,而不是去赋一个返回值 用多态来替代条件语句 创建和使用null对象而不是去检测空值...
|