私は比較的大きなアカデミック シミュレーション ソフトウェア (50 クラス) を持っています。ユーザーは、20 を超えるアイテムを含む構成ファイルを選択します。これらの定数変数は、シミュレーション プラットフォーム全体 (ほぼすべてのクラス) で使用されます。シミュレーションでは、数十万のエージェント オブジェクトが毎秒数回実行されるため、パフォーマンスが重要になります。
現在、シングルトン設定クラスを使用しています。インスタンスを使用して、プログラムの開始時にファイルからクラスに読み込まれた値を取得します (他のすべてのクラスの設定クラスへの参照を追加したくありませんでした)。
1- 最近プロファイラーを実行したところ、getInstance().getSomeSetting() への過剰な呼び出しがパフォーマンスを低下させていることがわかりました。
2-シングルトンの使用について話すたびに、多くの非難を受けました。
このようなシナリオで設定にアクセスするベスト プラクティスは何ですか? これらの 20 以上の構成項目にグローバル変数を使用する必要がありますか?