Java方法重载最佳实践

时间:2018-06-20 07:08:11

标签: java methods overloading

只是想知道在具有相同签名的方法上创建最佳做法是什么

案例1

public void transfer(Department department){
    this.department = department;
}

public void transfer(Department department,String postion){
    this.department = department;
    this.postion = position;
}

案例2

public void transfer(Department department){
    this.department = department;
}

public void transfer(Department department,String postion){
    transfer(department);
    this.postion = position;
}

1 个答案:

答案 0 :(得分:7)

避免代码重复。

从这个角度来看,选项2稍微好一点,因为它可以防止重复执行该分配。通常,您使用构造函数执行此操作,然后将其称为构造函数伸缩。要在此处进行真正的伸缩,您应遵循Berger的建议,而应将一个参数方法称为二参数方法。 向读者传达部门实际导致的设置是什么。

除此之外:我在这里看到的真正问题是命名。 transfer()表示某些内容已转移。实际上,您的方法只不过是设置者。应当相应地命名,例如setTransferDetails()