应用程序设置存储
Application settings storage
我有一个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");
问题是,在初始化配置管理器之前,可能会包含此文件,或者不包含?
我知道这个代码很糟糕,但我不知道如何把它写得更好。
据我所知,您希望在应用程序启动时将配置设置存储在内存中,这样您就不需要在运行时访问配置文件。但是,既然已经有了这样的singleton,为什么还要决定使用全局变量呢?
我会将这些设置存储为ConfigManager的私有属性,并将其初始化为ConfigManager初始化的一部分。然后,当调用类似Root::Get().GetConfig()->GetValue("Key")
的东西时,它会返回其中一个私有属性的值。
相关文章:
- 在 Linux 中存储区域设置名称的缓冲区大小应该是多少?
- 可以使用QSettings或其他类在每次启动时存储一些设置(但在启动之间重置)吗?
- 为什么设置const变量(将以相同的值存储)会导致不同的结果
- 存储 (x, y) 与设置的坐标
- C++库以人类可读的格式存储设置
- 存储在全局变量中的函数指针在进入函数时设置为 0,并在退出函数时返回到以前的状态
- 在std ::设置中存储一个指针的指针是安全的吗?
- 试图设置一个数组将最后三个存款存储到银行帐户系统中
- STD ::设置以存储其元素V.S.std :: vector
- 尝试在C 程序中设置简单的键盘输入.使用变量存储True或false
- 如何使用C/C++将用户设置完全内部存储在exe中
- 如何使用IOStream存储格式设置?
- 如何在没有临时设置的情况下将集合差异 s1-s2 存储在 s1 中
- 在C++中将所有TLS(线程本地存储)变量设置为新的单个值
- OpenGL:将Z深度设置为统一深度,而不是冗余存储在顶点内
- 存储设置的最佳做法
- 从存储在 SPIFFS 中的变量中设置全局对象 ESP8266.
- 如何在跨平台应用程序中存储首选项(和用户设置)
- 应用程序设置存储
- 如何使用C++在RAD Studio XE6中存储Android应用程序数据/设置