私はよく、次のようなメソッド シグネチャを持っている状況に遭遇します。
public returnType doStuff(mandatoryParam, calculableParam1, calculableParam2);
これらの状況では、これらの異なるメソッド シグネチャをサポートしたいことがあります。
public returnType doStuff(mandatoryParam);
public returnType doStuff(mandatory, calculable1);
public returnType doStuff(mandatory, calculable2);
public returnType doStuff(mandator, calculable1, calculable2);
このようなオーバーロードを行う場合、次のようにオーバーロードがベース メソッドに null を渡すようにする方がよいでしょうか。
public returnType doStuff(mandatoryParam){
doStuff(mandotryParam, null, null)
}
public returnType doSTuff(mandatoryParam, calculable1, calculable2){
if(null == calculable1){
calculable1 = calculate();
}
.
.
.
}
または、計算可能なパラメーターを計算してから、次のように基本メソッドに渡す方が良いですか:
public returnType doStuff(mandatoryParam){
Calculable calc1 = figureItOut1();
Calculable calc2 = figureItOut2();
doStuff(mandotryParam, calc1, calc2);
}