我有许多类设计,如 ,并且它们必须随时可以访问(也可以作为单个实例)。目前我已经使用存储指向所有类的指针的命名空间。有没有更好的方法来解决/设计这样的问题/结构?
// AbcManager.h
class AbcManager
{
public:
void printTest();
private:
char text[] = "Hello world";
}
// ManagerNamespace.h
namespace Manager
{
AbcManager* abc;
}
// somewhere.h
{
Manager::abc->printTest();
}
答案 0 :(得分:0)
要求两个必要条件:
在仔细考虑后,很明显SRP不是问题,因为正如OP所说:
他们必须随时随地都可以访问
这意味着绝对不需要单独的对象。如果命名空间存储了所有指针,但是不同对象的初始化是以堆栈方式完成的吗?在任何时候,有些可能会丢失,指向null。这只留下了以下微不足道的可能性:
我建议区分单例(只能有一个实例的对象)和普通对象,它只能被你的代码实例化一次(后者不是单例)。
答案 1 :(得分:-2)
模板是否合适,考虑到你有很多类,如下所示"。只需使用您需要的类型/非类型参数实例化每个模板。不确定这是不是你要问的问题。