c++ - 如何在单个全局数组中独立注册全局变量

标签 c++ design-patterns global-variables factory-pattern

我正在写这个,好吧,我猜它是一个图书馆。它提供了一组 MyType 类型的全局变量。现在,我想在自己的 .cpp.h 文件中编写这些 MyType 的每一个的源代码,不知道所有其余部分,而不需要一些中央头文件说MyType* 产品 = { &global1, &global2,/*... */}

现在,如果这些是我希望能够实例化的不同类,我会想使用工厂模式;但在这里它们都是同一类型,我不需要实例化任何东西。我认为每个变量都需要从其来源的某处“注册”到全局数组(或无序集)中。

那么,执行此操作的惯用方法是什么?

最佳答案

你可以看看 Registry Pattern并为您的文件系统或文件夹创建一个管理器来管理这些对象。

注册表可以包含与文件系统处理相关的所有内容,因此您可以将对象名称和属性插入到一个配置文件或数据库的模型中。注册表可以查找并在运行时实例化您的对象。

现在您需要一种机制来将此对象与系统的其余部分进行通信。但是,如果您的对象不会更改,那么只需一个包含编译时对象的注册表即可。

Registry 是一种以类似于单例的方式处理全局对象的模式。

关于c++ - 如何在单个全局数组中独立注册全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22293507/

相关文章:

c++ - 声明所有类 C++ 访问的全局变量

c++ - 我怎样才能让我的回调函数知道调用它的 vector 的哪个元素?

design-patterns - 通用报告格式

java - 处理表行数据结构的最佳模式是什么?

design-patterns - EAA P 中的域模型和服务层模式

当一项变化时计算表达式的变化(多线程)

javascript - 功能是一键延迟jquery

c++ - 了解 Apache Thrift 与 TCP 套接字服务器的特点?

c++ - Qt-C++ 防止插槽执行方法,当前一个插槽已经 dit 并且尚未完成时

c++ - QTcpSocket 和多个客户端(信号问题)