我有一个c ++应用程序。我需要从文件中加载一些配置数据。
结构是:
Root(singleton) → ConfigManager(); LogManager(); ...;
所以所有经理都是在Roo'ts ctor中创建的,我可以使用方法获取指针: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");
问题是在初始化Config管理器之前可能包含此文件吗?
我知道这段代码很糟糕,但我不知道怎么写得更好。
答案 0 :(得分:0)
根据我的理解,您希望在应用程序启动时将配置设置存储在内存中,这样您就不需要在运行时访问配置文件。但是,当你有像这样的单身时,你为什么决定使用全局变量?
我将这些设置存储为ConfigManager的私有属性,并将它们初始化为ConfigManager初始化的一部分。然后当调用Root::Get().GetConfig()->GetValue("Key")
之类的东西时,它将返回其中一个私有属性的值。