我们用于我们产品的一个库使用单例来访问它。我很确定它是作为一个静态实例来实现的(它不是开源的)。这适用于单个文档应用程序,但我们的应用程序可能会加载多个文档。我假设访问实例写到这样的事:在C++中创建多个全局静态实例?
Instance* getInstance() {
static Instance* inst = new Instance();
return inst;
}
在这样的情况下,有一些方法能够稳健地创造超过 一个实例?我能想到的唯一的事情就是不仅仅是处理和使用某种类型的IPC来将它们连接在一起。我想不出有什么不好的。
我已经要求供应商实现某种类型的会话令牌,这样我可以有多个并发实例,但它们很大,而且我们很小。
科里斯
编辑:
- 机器是Windows机器
- 全局静态基本上是一个大工厂。我想要一些类型的会话令牌,所以我可以轻松地说:“从这次会议释放所有的资源”(有没有办法重新初始化全局静态,我知道的)
而不是尝试一些狡猾的诡计为了得到我想要的东西,我打算用我自己的类包装整个东西,并为每个吸气剂添加一个会话密钥。在内部,我将跟踪已分配的内容,添加我自己的发布方法以返回资源。由于许多原因,这是不理想的,但我想不出一个更好的主意。
感谢大家的好评。
你在什么操作系统平台上? – Skrymsli 2009-05-29 23:47:46
这就是为什么单身人士是邪恶的。除非它真的是严重的东西,只能有一个对象,它不应该是一个单身。让其他人决定该对象有多少个实例。 – 2009-05-30 01:05:53