假设我有一个具有许多属性的类
class A {
private:
int x1;
int x2;
....
int xn;
}
我希望与其他类共享一些组属性。示例class B
,class C
,... class B
可以访问x1, x3
进行设置/获取,C类可以访问x1, x2, xn
进行设置/获取。
我的解决方案:
解决方案1 :class A
是单身人士。如果class B
或class C
想要在class A
中设置/获取属性,请使用A::GetInstance()
(例如)来设置/获取属性。使用此解决方案,您无需关心共享class B
(或class C
)的属性。我认为,使用 singleton 时必须注意多线程问题。
解决方案2 我使用类来共享。
示例
class SharedB {
public
int x1;
int x3;
}
class SharedC {
public
int x1;
int x2;
int xn;
}
class SharedB
和class SharedC
也将是class B
和class C
可以使用的单身。这个解决方案的优点是我可以控制我分享的内容。但缺点是使用单线程,我认为多线程不安全。
所以我的问题是解决我的问题更好和线程安全。
感谢您的回答。