2009-02-26 47 views
0

我想使用一个大量使用单身人士的单身人士,但实际上我需要一些经理类别拥有多个实例。该代码是开源的,但自己更改代码会使lib更新到更新的版本。我可以取消单身单身人士

有什么技巧可以强制创建一个单例的新实例甚至整个库?

回答

1

答案是“这取决于”。一个很好的例子是Microsofts C运行时使用的C++堆。当然,这是作为一个单身人士来实施的。现在,当您将CRT静态链接到多个DLL时,最终会得到多个副本。较新的实现有一个堆,而较旧的CRT为每个库创建一个堆链接。

2

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

+0

可能或不可能帮助,请参阅我的反例。 – MSalters 2009-02-26 10:53:21

1

请记住,图书馆也取决于单身人士的单身性质。如果您想更新库,则需要验证您的更改不会违反库功能。这只能每次都手动完成。

3

找出是谁写的图书馆在第一个地方,访问他们的家庭地址,并打败他们血腥纸浆,最好有一本关于软件设计的书。 :)

除此之外:作为补丁集保留对原始库的更改,以便您可以(或多或少)轻松将其应用于每个新版本。此外,请尝试将更改加入到库中,以免您自己维护修补程序。 ;)