只是想知道在具有相同签名的方法上创建最佳做法是什么
案例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;
}
答案 0 :(得分:7)
避免代码重复。
从这个角度来看,选项2稍微好一点,因为它可以防止重复执行该分配。通常,您使用构造函数执行此操作,然后将其称为构造函数伸缩。要在此处进行真正的伸缩,您应遵循Berger的建议,而应将一个参数方法称为二参数方法。 还向读者传达部门实际导致的设置是什么。
除此之外:我在这里看到的真正问题是命名。 transfer()
表示某些内容已转移。实际上,您的方法只不过是设置者。应当相应地命名,例如setTransferDetails()
。