大型重构 12.1 Tease Apart Inheritance (梳理并分解继承体系) 某个继承体系同时承担两项责任 建立两个继承体系, 并...
处理概括关系 即继承关系 11.1 Pull Up Field (字段上移) 两个子类拥有相同的字段 将该字段移至超类 11.2 Pull Up...
简化函数调用 10.1 Rename Method (函数改名) 函数的名称未能揭示函数的用途 修改函数名称 将复杂的处理过程分解成小函数, 小...
简化条件表达式 9.1 Decompose Conditional (分解条件表达式) 你有一个复杂的条件表达式语句 从if,then,else...
重新组织数据 如果你看到一个数组的行为方式很像一个数据结构, 就可以使用 用对象取代数组 把数组变成对象, 从而使这个数据结构更清晰的显露出来....
决定把责任放在哪儿,即使不是最重要的事情, 也是最重要的事之一. Move Method和Move Field简单地移动对象行为. 如果这两个重...
6.1 Extract Method (提炼函数) 将代码放进一个独立函数中, 并让函数名称解释该函数的用途 6.2 Inline Method...
别担心, 我们并不是说你不该写注释. 从嗅觉上说, Comments不是一种坏味道,实际上它们还是一种香气呢, 我们之所以要在这里提到Comme...
子类应该继承超类的函数和数据. 但如果它们不想或不需要继承, 又该怎么办呢? 它们得到所有礼物, 却只从中挑选几样来玩. 按传统说法, 这就意...
文集作者