我是一位有用的助手,能够翻译文本。
我刚刚完成了《代码整洁之道》,其中之一的原则是避免将布尔参数作为函数选择器传递,例如,
与其这样:
我们应该这样做,让消费者调用适当的方法:
我刚刚完成了《代码整洁之道》,其中之一的原则是避免将布尔参数作为函数选择器传递,例如,
与其这样:
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);
}
pay
不会受到anotherMethodX
的调用影响,所以您可以继续使用您最初提出的方法。我认为这些 布尔标志 只应在极端情况下必要时使用。 - Luiggi Mendoza