摘要:
Pull Up Field Pull Up Method Pull Up Constructor Body Push Down Method Push Down Field Extract Subclass 划分子类要看按什么标准划分子类,比如对于Employee, 可以按职责划分财务,行政,工程师 阅读全文
随笔档案-2016年03月
重构 - 简化方法的调用
2016-03-09 19:24 by yoogo, 250 阅读, 收藏,
摘要:
Rename Method 方法名是对方法体的抽象,是化繁为简的支柱 Add Parameter 注意:在添加参数的时候,先考虑是否可以把数据移动到方法所在的类中 Remove Parameter Separate Query from Modifier 目标:查询的方法不要做修改 Paramete 阅读全文
重构 - 简化条件分支
2016-03-09 15:38 by yoogo, 330 阅读, 收藏,
摘要:
Decompose Conditional 简化条件表达式 目的:把复杂的条件表达式抽成方法 Consolidate Conditional Expression 目的:合并多个行为相同的条件分支 Consolidate Duplicate Conditional Fragments 目的:去除在多 阅读全文
重构 - 组织数据
2016-03-09 10:45 by yoogo, 236 阅读, 收藏,
摘要:
自封装字段 Self Encapsulate Field 目标:即使访问自己的属性,也要通过 getter/setter ; Replace Data Value with Object 目标: 替换值类型为对象, 是抽类的一个特例 Change Value to Reference 问题: 应该引 阅读全文
代码坏味道
2016-03-08 01:08 by yoogo, 209 阅读, 收藏,
摘要:
肿胀 代码,方法或类膨胀到难以维护,一般是长期积累形成,从未人尝试瘦身。 这包括: 长方法,大类,长的参数列表,偏爱使用原始类型,数据块 对 OO 的滥用 对面向对象原则的不正确或一知半解。 switch 语句, 临时字段, 拒绝继承,Alternative classes with differe 阅读全文
重构 - 给方法和属性找到更合适的类
2016-03-08 01:03 by yoogo, 269 阅读, 收藏,
摘要:
Move Method 移动方法 问题 一个方法在其他类中调用的频率比所属的类还高 解 方法应该属于调用它最多的那个类 为什么重构 1,方法使用的数据或者变量的个数最多来自哪个类,那个类就是方法该待的地方,这就是所谓的类的内聚性; 2,减少类的依赖 Move Field 移动字段 问题 一个字段在另 阅读全文
重构 - 重组方法
2016-03-07 23:32 by yoogo, 400 阅读, 收藏,
摘要:
抽方法 (Extract Method) 问题 一坨代码理不清 解 分组,然后把一组代码移动到新的方法中 重构的必要性 行数越多,越难懂 收益 易懂,方法名代替了注释 减少重复 隔离的代码,更少出错 内联方法 (Inline Method ) 问题 方法体比方法本身更直观 解 直接用方法体替换方法 阅读全文
代码坏味道 - 耦合
2016-03-05 00:12 by yoogo, 349 阅读, 收藏,
摘要:
耦合 Feature Envy 症状: 方法访问其他类的对象的属性,而不是自己的。 成因: 最常见的问题就是由数据类引起的。 治疗: 多数时候,同时需要做出改变的code 应该在一起。 收益: 不合适的亲密 症状: 一个类有大量的访问另一个类的属性和方法,类之间的联系千丝万缕。 成因: 治疗: 变双 阅读全文
代码坏味道 - 多余的代码
2016-03-04 16:52 by yoogo, 434 阅读, 收藏,
摘要:
注释 症状 注释太多 成因 因为代码违反直觉,所以需要注释说明。这也往往以为着代码的臭味。最好的注释是给类或方法起个好名字。 治疗 通过抽变量的方式给一个复杂的表达式命名; 通过抽方法的方式给一段代码命名; 收益 消除注释但是不降低代码的可读性正是重构追求的目标。 重复代码 症状 成因 无意的重复发 阅读全文
代码坏味道 - 改变的阻力
2016-03-04 14:59 by yoogo, 179 阅读, 收藏,
摘要:
需要同时修改多处 症状 当你对一个类做一点修改,你发现需要同时修改很过个看起来无关的方法。比如,添加一个产品,却影响到find ,delete,update 等多个方法 成因 程序结构不好或者复制粘贴构成的代码 治疗 抽类,抽父类,抽子类 收益 去重,提高组织性 短枪手术 症状 小的修改引起很多类的 阅读全文
代码坏味道 - OO 滥用
2016-03-04 13:31 by yoogo, 610 阅读, 收藏,
摘要:
OO 滥用 switch 语句 症状: 复杂的 switch 或 一系列的if 成因: switch/case 语句在 OO 的代码中一般少见,一旦出现往往会在多个地方重复。 据经验,遇见 switch/case , 往往意味着应该考虑多态了。 治疗: 条件与属性相关的:抽子类或使用策略/状态模式 阅读全文
代码坏味道-代码膨胀
2016-03-02 15:20 by yoogo, 765 阅读, 收藏,
摘要:
代码膨胀 长方法 症状 一个方法行数太多,一般超过十行你就值得怀疑。 成因: 一个方法,日积月累,只添代码从不清理-很说时候是因为认为没有必要再创建一个新的方法,最终形成意大利面条式的代码。 治疗: 如果需要在一个方法内部添加注释,你应该把要注释的代码放到一个新方法里,即使这个代码只有一行,然后给这 阅读全文
浙公网安备 33010602011771号