我只是想知道这些创建实例的方法之一是否是“更好”的解决方案,如果是,那么为什么呢?
method 1: MyClass myClass = new MyClass();
method 2: MyClass myClass2 = MyClass.Create();
public class MyClass
{
public string Name { get; set; }
public static MyClass Create()
{
return new MyClass();
}
}
亲切的问候
答案 0 :(得分:0)
方法2可以更灵活,例如实施工厂方法模式
时 public abstract class MyClass {
...
protected MyClass() {
}
public static MyClass Create() {
if (...)
return new MyClassOne();
else if (...)
return new MyClassTwo();
...
}
public abctract void DoSomething();
}
...
MyClass my = MyClass.Create();
// I have no need to choose which concrete class (MyClassOne, MyClassTwo etc.)
// will do something for me
my.DoSomething();