首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以取消单例吗?

我可以取消单例吗?
EN

Stack Overflow用户
提问于 2009-02-26 10:48:22
回答 4查看 312关注 0票数 0

我想使用一个大量使用单例的库,但实际上我需要一些管理器类来拥有多个实例。代码是开放源码的,但是我自己修改代码会使库很难更新到新版本。

如果有的话,有什么技巧可以强制创建单例或整个库的新实例?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-02-26 10:52:58

答案是“视情况而定”。微软C运行时使用的C++堆就是一个很好的例子。当然,这是作为单例实现的。现在,当您将CRT静态链接到多个DLL中时,最终会得到多个副本。较新的实现只有一个堆,而较旧的CRT为链接的每个库创建一个堆。

票数 1
EN

Stack Overflow用户

发布于 2009-02-26 10:51:02

找出最初是谁写的这个库,访问他们的家庭地址,把他们打得血淋淋的,最好是用一本关于软件设计的书。:)

除此之外:将您对原始库的更改作为补丁集进行维护,以便(或多或少)可以轻松地将其应用于每个新版本。此外,尝试将您的更改放入库中,这样您就不必自己维护补丁了。;)

票数 3
EN

Stack Overflow用户

发布于 2009-02-26 10:50:51

在windows下,您可以将每个实例封装在不同的DLL中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/590027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档