只是想知道创建具有相同签名的方法的最佳实践是什么
案例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;
}
最佳答案
您可以避免代码重复。
从这个角度来看,选项 2 稍好一些,因为它可以防止重复分配。通常,您可以使用构造函数来执行此操作,然后将其称为构造函数伸缩。要在这里实现真正的伸缩,您应该遵循 Berger 的建议,而让单参数方法调用双参数方法。这还向读者传达了该部门实际上导致的设置。
除此之外:我在这里看到的真正问题是命名。 transfer()
意味着某些内容被传输。实际上,您的方法只不过是一个setter。它应该相应地命名,例如 setTransferDetails()
。
关于Java 方法重载最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50942257/