クラスの共通設定をファイルから読み込む場合にファイル名って決め打ちにしますか?

class Hoge {
static bool initialized;
static CommonData commonData;
static void Load(void) {
if(initialized) return;
file f("Hoge.dat"); // 〜
if(succeeded) initialized = true;
else throw except("init error");
}
public:
Hoge(void) { Load(); }
};

class Fuga {
static bool initialized;
static CommonData cd;
public:
static bool Load(file & f) {
// 〜
if(succeeded) initialized;
return succeeded;
}
};

Fuga(void) { if(!initialized) throw except("not ready"); } };

Hogeの方は初期化の面倒さや初期化忘れもありませんが、ファイル名が競合するかもしれないという不安があります
面倒な部分がカプセル化されててOOPっぽい雰囲気もあります
Fugaの方は初期化忘れや初期化順の混乱とかがおこるかもしれませんが、ファイル名はアプリケーションで指定できるので競合しません
どっちがいいんでしょうか