软件设计重构秘笈15式-14移除重复内容

47 阅读1分钟

软件设计重构秘笈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的痕迹。