软件设计重构秘笈15式-14移除重复内容
概念
本文中的“移除重复内容”是指把一些很多地方都用到的逻辑提炼出来,然后提供给调用者统一调用。
意图
移除重复内容把一些很多地方都用到的逻辑提炼出来,统一调用与维护 如下代码所示,method1和method2都会用到archived = true; 和dateArchived = new Date(); 这两条语句,所以我们就可以对它进行重构。
案例
public class MedicalRecord {
private Date dateArchived;
private boolean archived;
public void method1() {
dateArchived = new Date();
archived = Boolean.TRUE;
}
public void method2() {
dateArchived = new Date();
archived = Boolean.TRUE;
}
}
重构
重构后的代码如下所示,我们提炼了method方法来封装公用的操作,然后给method1和method2统一调用。
public class MedicalRecord {
private Date dateArchived;
private boolean archived;
public void method1() {
method();
}
public void method2() {
method();
}
public void method() {
dateArchived = new Date();
archived = Boolean.TRUE;
}
}
总结
这个重构很简单,绝大多数程序员都会使用这种重构方法,但有时由于习惯、时间、赶进度等原因而忽略它, 所以会使得整个系统杂乱无章,到处都是Ctrl+C和Ctrl+V的痕迹。