lne*_*man 1 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;
}
Run Code Online (Sandbox Code Playgroud)
案例2
public void transfer(Department department){
this.department = department;
}
public void transfer(Department department,String postion){
transfer(department);
this.postion = position;
}
Run Code Online (Sandbox Code Playgroud)
您可以避免代码重复.
从这个角度来看,选项2略好一些,因为它可以防止重复该任务.通常,您使用构造函数执行此操作,然后将其称为构造函数telescoping.要在这里进行真正的伸缩,你应该遵循Berger的建议,而是让一个参数方法调用双参数方法.这也传达什么设置读者只是部实际上导致.
除此之外:我在这里看到的真正问题是命名.transfer()意味着某些东西被转移了.实际上,你的方法只不过是一个二传手.它应该相应地命名,就像setTransferDetails().
| 归档时间: |
|
| 查看次数: |
190 次 |
| 最近记录: |