我有两个类ClassA和ClassB都引用了单个对象ClassHelper。我的问题是,一旦使用ClassA和ClassB
,我应该如何处理单例对象修改
public ClassA
{
CHelper obj;
public ClassA()
{
obj = obj.GetInstance("Initialise");
obj.CallFuncA();
}
}
On the same lines
public ClassB
{
CHelper obj;
public ClassB()
{
obj = obj.GetInstance("Initialise");
obj.CallFuncB();
}
}
where
CHelper
{
private static sm_CHelper;
public static GetInstance(string strInitialise)
{
if(sm_CHelper == null)
{
sm_CHelper = new CHelper(strInitialise);
}
}
private CHelper(string strInitialise)
{
//do something here
}
public CallFuncA()
{
// do something here
}
public CallFuncB()
{
// do something here
}
}
此致 学习者
答案 0 :(得分:1)
如果你正在谈论singelton模式那么你就不应该处理它....如果你没有提到singelton模式,那么你可以尝试使用解构器来运行你的处置逻辑。
答案 1 :(得分:0)
该单身人士应在申请期间保持活着状态。所以在处理ClassA和ClassB时不应该丢弃它。
答案 2 :(得分:0)
我从未见过这样的例子。我可能会做类似的事情:
class Resource {
static Resource Instance = new Resource();
static int count = 2;
public Resource CheckOut() {
if (--count <= 0)
Instance = null;
return Instance;
}
}
这样,在ClassA和ClassB签出资源后,静态引用就会停止它。在ClassA和ClassB失去对Resource的引用后,终结器将被称为下一轮垃圾收集。