如何避免在Java中使用方法选择器参数(标志/布尔参数)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何避免在Java中使用方法选择器参数(标志/布尔参数),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1174字,纯文字阅读大概需要2分钟。
内容图文
我刚刚完成了Clean Code,其中一条规则是避免将布尔参数作为功能选择器传递,例如,
而不是这个:
public double calculateWeeklyPay(boolean overtime) {
double pay = calculatePay();
if (overtime) {
return pay *= 1.5;
}
return pay;
}
我们应该这样做,让消费者调用适当的方法:
public double calculateWeeklyPay() {
return calculatePay();
}
public double calculateWeeklyPayWithOvertime() {
double pay = calculateWeeklyPay();
return pay *= 1.5;
}
但是,我应该在更复杂的方法中做什么,分割方法意味着许多重复的代码?
这里应该做什么:
public double calculateWeeklyPay(boolean overtime) {
double pay = calculatePay();
pay = modifyPay1(pay);
pay = modifyPay2(pay)
pay = modifyPay3(pay)
if (overtime) {
pay = pay *= 1.5;
}
pay = modifyPay4(pay);
pay = modifyPay5(pay);
pay = modifyPay6(pay);
}
解决方法:
您必须区分公共API和内部API.
对于公共API,你真的应该避免使用这样的选择器参数.但对于内部API(私有方法),它是一种适当的实现机制.所以这样做:
public double calculateWeeklyPayWithOvertime() {
return calculateWeeklyPay(true);
}
public double calculateWeeklyPayWithoutOvertime() {
return calculateWeeklyPay(false);
}
private double calculateWeeklyPay(boolean overtime) {
double pay = calculatePay();
if (overtime) {
pay *= 1.5;
}
return pay;
}
内容总结
以上是互联网集市为您收集整理的如何避免在Java中使用方法选择器参数(标志/布尔参数)全部内容,希望文章能够帮你解决如何避免在Java中使用方法选择器参数(标志/布尔参数)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。