哪种创建实例的方法是 "better" 方法,为什么?
which method of creating an instance is a "better" method and why?
我只是想知道这些创建实例的方法中的一种是否是“更好”的解决方案,如果是,那为什么呢?
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();
}
}
亲切的问候
方法 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();
我只是想知道这些创建实例的方法中的一种是否是“更好”的解决方案,如果是,那为什么呢?
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();
}
}
亲切的问候
方法 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();