条件文の簡略化
7035 ワード
📌 条件文の分割
他の人のコードを表示したり、コードを記述したりすると、条件文に複雑な内容が含まれる場合があります.
この方法の目的は,条件付き関数を抽出し,コードを読みやすくすることである.
再包装前のソース
class Simple_Example{
void Example(){
if(date < SUPPER_STAR || date > SUPPER_END)
charge = quantity * winterRate + winterServiceCharge;
else
charge = quantity * summerRate;
}
}
ドアの中の条件が複雑だったら・・・chargeの値を代入するのは複雑すぎます...
再包装したソース
class Simple_Example{
void Example(){
if(isNotSummer())
charge = CalculateWinterRate();
else
charge = CalculateSummerRate();
}
}
private bool IsNotSummer(){
return date < SUPPER_STAR || date > SUPPER_END;
}
private bool CalculateWinterRate(){
return quantity * winterRate + winterServiceCharge;
}
private bool CalculateSummerRate(){
return quantity * summerRate;
}
条件を関数に代入!コードの増加または認識が容易
📌 冗長条件式の統合
条件文が連続している場合は、条件式を使用してマージします.
再包装前のソース
if(anEmployee.seniority < 2) return 0;
if(anEmployee.MothsDisabled > 12) return 0;
if(anEmployee.isPartTime) return 0;
再包装したソース
if(isNotEligableForDisability()) return 0;
function isNotEligableForDisability(){
return ((anEmployee.seniority < 2)
|| (anEmployee.MothsDisabled > 12)
|| (anEmployee.isPartTime));
}
📑 References
https://arisu1000.tistory.com/27589
https://arisu1000.tistory.com/27585
Reference
この問題について(条件文の簡略化), 我々は、より多くの情報をここで見つけました https://velog.io/@come_true/조건문-단순화テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol