gpt4 book ai didi

c# - 静态类和具有私有(private)构造函数的实例类之间的区别

转载 作者:太空狗 更新时间:2023-10-30 01:11:26 25 4
gpt4 key购买 nike

虽然静态类只有一个实例,不能实例化,但是有私有(private)构造函数的类是不能实例化的(因为看不到构造函数),所以每次调用这个类时,this同一个实例?

工厂类总是遵循最后的约定(具有私有(private)构造函数的实例类)。这是为什么?

谢谢

最佳答案

没有什么可以阻止具有私有(private)构造函数的类拥有返回类实例的公共(public)静态方法:

public class NoPublicConstructor
{
private NoPublicConstructor()
{
}

public static NoPublicConstructor NewInstance()
{
return new NoPublicConstructor();
}
}

如您所见,静态方法不会返回同一个实例。

编辑:工厂类这样做的原因之一是为了能够在未来的版本中分离职责:虽然您的代码总是调用工厂创建方法,但作者可能会移动所有“胆量”从那个类到另一个不同的类,你的代码不需要知道区别。调用该类的(公共(public))构造函数在一定程度上将其与原始类实现联系起来。

关于c# - 静态类和具有私有(private)构造函数的实例类之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2563585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com