2012-01-25 127 views
0

我有一個C++應用程序。我需要從文件加載一些配置數據。應用程序設置存儲

結構爲:

Root(singleton) → ConfigManager(); LogManager(); ...; 

因此,所有的經理都在Roo'ts構造函數創建的,我可以使用的方法讓指針對他們說:Root::Get().GetSomeManager();

int main() 
{ 
    // Here all managers are initialized 
    Root::Get(); 
    // App cycle 
    Root::Get().Deinitialize(); 

    return 0; 
} 

ConfigManager允許我通過傳遞鍵從文件值加載。

的問題是: 我如何可以存儲一些全局額外的文件,從文件中的值?

我寫文件Config.hpp的代碼看起來像:

const int val = Root::Get().GetConfig()->GetValue("Key"); 

的問題是,這個文件可能是可列入前的配置管理器初始化,還是不?

我知道這個代碼是不好的,但我不知道怎麼寫的更好。

回答

0

據我瞭解,你要存儲在應用程序啓動時的內存配置設置,這樣你就不需要訪問配置文件在運行時。但是,如果你已經有單身人士,你爲什麼決定使用全局變量呢?

我會保存這些設置CONFIGMANAGER的私有屬性,並將其作爲初始化的CONFIGMANAGER初始化的一部分。然後當調用類似Root::Get().GetConfig()->GetValue("Key")的東西時,它會返回其中一個私有屬性的值。