デスクトップ アプリケーションの構成設定を保存する ini/json があるとします。起動時にすべてのプロパティが読み込まれた静的オブジェクトを持っていても問題ありませんか、それが必要な場合はいつでもかまいませんか、それとも他のより良い代替手段はありますか?
これは私がこれを行うのは初めてなので、静的オブジェクトが問題ないのか、シングルトンパターンなのか、それとも何か他のものが良いのかを知りたかっただけです
デスクトップ アプリケーションの構成設定を保存する ini/json があるとします。起動時にすべてのプロパティが読み込まれた静的オブジェクトを持っていても問題ありませんか、それが必要な場合はいつでもかまいませんか、それとも他のより良い代替手段はありますか?
これは私がこれを行うのは初めてなので、静的オブジェクトが問題ないのか、シングルトンパターンなのか、それとも何か他のものが良いのかを知りたかっただけです
私は通常Boost.Program_optionsを使用し、通常はシングルトンを使用します。
どちらでも構いません。
それが私だったら、構成オブジェクトの構築にそれを持っているでしょう。
cConfig Config("config.ini");
この Config クラスは、ファイルにある設定をロードします。どのコードも次のようにして設定にアクセスできます
Config.Get("NumberOfFoobars")
テストを容易にするために、構成にファイルがない場合は、クラスの設定がデフォルトに設定されるか、ログ ファイルが作成され、ユーザーに不足している設定を通知する行が含まれます。
次に、構成が必要な関数については、パラメーターの一部として Config インスタンスを渡します。
DoStuff(Config, [...]);
DoStuff に Config クラスから変数を取得させます。
これにより、クラスがテスト可能になり (Config クラスをモックできる)、読みやすくなり (一目で、どの関数が Config を必要とするかがわかります)、静的インスタンスに依存する必要がなくなります (方法がわからない場合、シングルトンは危険です)。それらを使用します)。
あなたはこれについてもっと知りたいと思うかもしれません