いくつかの計算を行うクラスがあるとしましょう。この一連の計算には、入力として一連のパラメータが必要です。
public class Calculator
{
private CalculatorConfig _config;
public Calculator(CalculatorConfig config)
{
_config = config;
}
public Result Calculate(object obj){}
}
私の CalculatorConfig クラスは非常に単純です:
public class CalculatorConfig
{
public double param1;
public double param2;
...
}
そして、私はそれを非常に簡単に初期化します
var config = new CalculatorConfig();
config.param1 = val;
....
var calculator = new Calculator(config);
私が抱えているジレンマは、このクラスのユーザーがいくつかのフィールドを初期化するのを忘れて、奇妙な動作につながる可能性があることです。意味のある解決策は、フィールドをプロパティに変換し、プライベート フィールドごとに、フィールドが初期化されたかどうかの情報を保持する追加のブール値を持つことです。すべてのフィールドを引数として持つメガコンストラクターを作成することもできます。
この場合、どのようなアプローチを選択しますか?
ありがとう