c++ - 如何在 C++ 中的多个类之间共享一个实例,而不是使用单例模式

标签 c++ design-patterns singleton

现在我正在开发一个 C++ 应用程序,我面临着共享实例的问题。

针对这个问题,我创建了一个简单的类图。我想为 A 类和 C 类共享 HogeDataManager。A 创建 HogeDataManager 并通过其公共(public)方法读取 HogeData。 B 向 HogeDataManager 添加一些数据。

为了共享HogeDataManager,我必须为B和C准备set_mgr方法。但我认为这不是一个聪明的方法。当然如果我采用单例模式,就可以解决了。但是单例有时是危险的,所以我想找到更好的方法来避免这样的问题。

enter image description here

最佳答案

你的设计不错: A 创建 HogeDataManager,并将其接管给 B,B 接管给 C。 只是缺少决定,对象 A、B 或 C 有责任最终销毁 HogeDataManager。 如果您不同意,A 必须创建和销毁 HogeDataManager,那么您需要在 B 和 C 中使用 unset_mgr()。

关于c++ - 如何在 C++ 中的多个类之间共享一个实例,而不是使用单例模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37295063/

相关文章:

java - 在创建高可用性应用程序时最常利用哪些设计模式?

java - 为什么在将 CGLIB 原型(prototype)注入(inject) Singleton 的情况下,每次对原型(prototype)的访问都会创建一个新对象?

c++ - SSE 类型的容器

c++ - iphone 上的 pragma pack(push)

c++ - LLDB 有时显示 vector 数据,有时不显示

c++ - Qt (MSVC2010) - 仅在安装 Qt 的计算机上找到依赖项

java - 在不实例化(未知)具体类型的情况下从方法返回接口(interface)对象

android - Model-View-Presenter 和 Android 应用程序设计

Winforms:在整个应用程序中访问类属性

string - 使用 Golang 计算文本文件中单例的数量