一直在阅读 MSDN,他们提到如果一个类只有静态成员等,可能需要私有构造函数,比如 Math 类。但是 Math 类实际上是一个静态类。他们还提到“或者当一个方法用于获取类的实例” - 我可以想象它是如何工作的,但你能给我一个例子吗?
问问题
110 次
3 回答
1
第二点是单例模式所依赖的。基本上,一个类可以通过将其构造函数设为私有来管理它的实例化方式。当它这样做时,消费者不能这样做:
var obj = new MyClass();
...因为构造函数是私有的。这意味着,消费者获取此类实例的唯一方法是通过方法或属性。如:
public MyClass GetInstance() {
return new MyClass();
}
(注意:不是单例,只是一个示例方法)
于 2013-08-13T13:10:30.637 回答
0
如果 API 等的客户端不应直接实例化类(类型),则使用私有或受保护的构造函数。另一个常见的用例是单例模式,就像前面提到的 Simon 一样:
public class MySingleton
{
private static MySingleton _instance;
private MySingleton() {} // private constructor
public static MySingleton Instance
{
get
{
if (_instance == null)
_instance = new Singleton();
return _instance;
}
}
}
于 2013-08-13T13:13:07.103 回答
0
“..when method is used to get an instance of class...”是四人工厂方法设计模式:
于 2013-08-13T13:34:11.390 回答