| 形态 | 同函数内重复 / 兄弟类间 / 无关类间 |
|---|---|
| 手法 | Extract Function、Pull Up Method、Extract Class |
| 注意 | 表面相似但语义不同的代码不要硬合并 |
提取前
提取前
double a = order.total() * 0.95;
// ... 另一处
result = amount * 0.95;提取后
提取后
double applyDiscount(double amount) {
return amount * 0.95;
}同一逻辑在多处重复时,修改需要同步多处;先用 Extract Function 合并片段,跨类重复用 Pull Up Method 或 Extract Class;重复的测试代码同样值得处理。
| 形态 | 同函数内重复 / 兄弟类间 / 无关类间 |
|---|---|
| 手法 | Extract Function、Pull Up Method、Extract Class |
| 注意 | 表面相似但语义不同的代码不要硬合并 |
double a = order.total() * 0.95;
// ... 另一处
result = amount * 0.95;double applyDiscount(double amount) {
return amount * 0.95;
}