gpt4 book ai didi

c++ - 避免插件中的单例在所有实例之间共享

转载 作者:太空狗 更新时间:2023-10-29 21:25:23 24 4
gpt4 key购买 nike

我正在构建一个将在主机中使用的插件。这个插件使用单例来提供我想在任何地方轻松访问的服务。当我多次实例化同一个插件时,问题就来了,同一个(静态)单例,特定于可运行的,将在所有实例化的插件中分片。一般来说,有没有一种方法可以缩小单例(c++)的范围?由于每个插件本身就是一个实例,我显然可以将插件的根类传递给它的所有子类,但我希望尽可能保持相同的全局单例设计。

最佳答案

有单例的理由吗?基本原理是当您需要强制只有一个,并且需要提供单一访问点时。如果这些不是真正的要求,那么只需创建一个并将其传递到需要的地方。

我会逐渐摆脱单例。

单例做的多还是少?

您可能需要将其分成几部分。

如果它做的不多,就把它传到需要的地方,去掉它的单例性。

如果它提供大量服务,请为每个服务创建接口(interface)并将它们传递到需要它们的地方。您的设计将得到改进,变得更易于测试和更容易理解。

起初,接口(interface)的实现可以委托(delegate)给原来的单例,但你最终想让它们自包含。

关于c++ - 避免插件中的单例在所有实例之间共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14090141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com