我有一个类(A类),它在运行时存在许多实例。该类使用另一个处理资源分配的类(类R)。由于第二类(R类)正在为A类的所有实例进行资源分配,因此必须只有一个副本。
所以它看起来像这样:
Class P (Parent)
Class A[64], which are childs of Class P
Each of these requires access to the single instance of Class R
我想知道这个的最佳解决方案。
还是我没想过的东西?
答案 0 :(得分:2)
让类R包含一个实例,即。单身模式。
然后你可以这样做:
class A
{
R *resource;
public:
A() { resource = R::getInstance(); }
}
从那时起将'resource'用作新的类指针,以防万一你改变主意后来的工作方式。
然而,更好和更灵活的是父母抓住实例。例如,在P类:
classA = new A(R::getInstance());
这样,您可以根据需要轻松更改资源类(例如,用于单元测试),但是P类不管理资源对象。