日期:2014-05-18  浏览次数:20846 次

私有构造函数的作用????
如题   不明白  
私有了   还怎么用???

------解决方案--------------------
public class A
{
private A()
{
...
}

public static int A_Func()
{
...
}
}

外面调用只能调用A的静态函数A_Func,而不能A a = new A();私有构造函数只能在函数内部调用,外部不能实例化,所以私有构造函数可以防止该类在外部被实例化
------解决方案--------------------
我这里一般是用于工具类

例如字符串的验证啊,枚举类型的转换这些东西,通常只做成静态接口被外部调用就可以了
public class A
{
private A(){}
public static bool validateString(string str){};
}

那么外部使用的时候,只需要A.validateString(string)就能使用了

外部无需构造A类,为了避免外部构造A类,A a = new A()这种情况出现,使用私有构造函数就可以。

还有在空实体我也用到过私有构造函数,总之目的就是避免外面new这个类,导致一些不可预料的结果。

而在单实体模式中,我也可以用到私有构造函数
public class A
{
private A(){}
private static A m_a;
public static A Instance
{
get
{
if(m_a==null)
{
m_a=new A();//自己内部new
}
return m_A;
}
}

用法其实很多,主要目的就是避免外部构造此类,至于其他情况下怎么使用就看自己判断了