c++ - 如何避免单例?

标签 c++ singleton

我有 6 个类,如下图所示。我希望所有这些都只实例化一次,同时我想避免单例。 Info 类对象将首先在从文件读取系统信息的应用程序中创建。在此之后,需要根据信息创建对象 ABC。之后需要创建 Server1Server2 对象。 Server1 对象想要访问A 对象,Server2 想要访问ABCServer1 对象。

Class heirarchy

如何在不使用单例的情况下解决这个问题?

谢谢!
苏巴拉奥

最佳答案

如果你希望一个对象只被创建一次,那么你需要计算它被创建的次数,否则你或其他程序员总是有可能不小心创建另一个实例。通常这是在局部静态变量的帮助下完成的,这基本上是单例。

困难的部分是如何在整个程序中安排对对象的访问。这可能是全局变量、静态方法或依赖注入(inject),具体取决于您的体系结构。 您可以在某个类中创建所有对象,然后使用 getter 访问它们。

底线是,如果您想保证对象只能创建一次,那么您正在寻找某种单例实现。

关于c++ - 如何避免单例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49643008/

相关文章:

.net - 多次初始化单例

c++11 - C++ 11 中的单例使用成员函数说明符

c++ - 在 0 显式启动 C/C++ 枚举的原因

c++ - “INPUT”未在此范围内声明

c++ - C++中的单元测试

c++ - Boyer Moore k-mismatches 算法失败

objective-c - 单例获取核心数据,在 [fetchedResultsController performFetch :&error] 上崩溃

c++ - 信号与信号2

C++ 单例实现Meyer's vs call_once

C++ Nifty Counter 成语;为什么?