有什么优点,什么时候适合使用静态构造函数?
public class MyClass
{
protected MyClass()
{
}
public static MyClass Create()
{
return new MyClass();
}
}
然后通过
创建类的实例MyClass myClass = MyClass.Create();
与仅拥有公共(public)构造函数并使用
创建对象相反MyClass myClass = new MyClass();
如果 Create 方法返回类实现的接口(interface)实例,我可以看到第一种方法很有用……它将强制调用者创建接口(interface)实例而不是特定类型。
最佳答案
这就是工厂模式,它经常被用来产生一个子类,但是允许静态方法的参数决定是哪一个。
如果并不总是需要新对象,例如在池实现中,也可以使用它。
如果对象的所有实例都需要缓存或以其他方式在创建时注册,也可以使用它。这可确保客户不会忘记这样做。
当然,它是单例模式的重要组成部分。
关于c# - 为什么要使用 Create 方法而不是使用 "new"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/876095/