Svi*_*ish 32
例如,如果您有一个只应通过工厂方法创建的类.或者,如果您有构造函数的重载,并且其中一些应该只由其他构造函数使用.可能还有其他原因=)
G B*_*G B 12
如果你知道一些设计模式,那很明显:一个类可以在内部创建一个自己的新实例,而不是让别人去做.Java中的一个例子(我不太了解C#,对不起)有一个单例类:
class Meh
{
private Meh() { }
private static Meh theMeh = new Meh();
public static Meh getInstance() { return theMeh; }
}
Run Code Online (Sandbox Code Playgroud)
Meh*_*ari 11
每当你想阻止从它外部直接实例化类时,你将使用private构造函数.例如,在引入static类的C#2.0之前,您使用private构造函数来完成大致相同的事情:
sealed class StaticClass {
private StaticClass() {
}
public static void DoSomething() {
}
}
Run Code Online (Sandbox Code Playgroud)
我可以回想起它的一些用法: