全局配置和类管理
Global configuration and class management
我想在一个地方(c++)存储对象的参数和句柄,以便这个项目中的每个其他对象都可以获得这些信息,它们只需要在一个地方更改。例如,我有一些字符串和一个(单个!)对象来处理外部设备。现在,整个项目中的不同对象应该能够通过使用控制对象的相同实例来处理外部设备。
实现这一点的最佳方法是什么?有什么规律吗?我应该有一个静态类来初始化所有这些对象和变量,并在需要时提供对象的引用吗?或者我应该一直把这些对象的引用交给别人——我现在做的事情,我真的不喜欢。
谢谢!
正如https://stackoverflow.com/users/2493903/undercover已经说过的,singleton是你所需要的。
的例子:
class Foobar
{
public:
static Foobar & singleton()
{
static Foobar foo;
return foo;
}
private:
Foobar();
Foobar( const Foobar & ); // don't implement
Foobar & operator=( const Foobar & ); // don't implement
};
你应该考虑Singleton,就像它说的那样,但是我认为应该添加一些补充。
使用Singleton应该在设计中有良好的定义,以避免在项目中出现混乱,否则它将成为一个具有几乎所有缺点的全局变量(几乎,因为它更容易使Singleton线程安全;))
我个人更喜欢依赖注入,因为当某人必须做比
更多的工作时Foo::getInstance().doSomething();
那么他将更有可能考虑他是否真的需要在这里使用这个类
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 无法找到/读取配置文件.conf-FileIOException
- 当vector是tje全局变量时,c++中vector的内存管理
- 在WSL:configure_file上对config_file的每次调用都失败:配置文件时出现问题
- 一种在C++中读取TXT配置文件的简单方法
- 生成MRPT库时cmake配置失败
- 如何维护资源管理器项目视图中当前可见的项目列表
- 如何在GTK程序运行时禁用屏幕保护程序/电源管理/屏幕消隐
- FFMPEG配置文件级别id大小无效
- 如何通过Conan和CMake找到用于pkg配置的.pc文件
- 资源管理设计模式
- 使用"Task"函数指针队列定义作业管理器
- 配置文件解析器仅返回以前的值
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 实现动态插件管理器
- 如何使用 cmake 管理多个构建配置
- VPN管理代理总是返回零配置文件,而且我似乎无法创建新的配置文件
- 以可维护的方式管理应用程序配置的模式
- 是否可以让一个应用程序配置和管理 DirectShow 筛选器,但将输出引脚绑定到另一个应用程序
- 全局配置和类管理