【发布时间】:2011-07-28 11:37:42
【问题描述】:
我有以下课程:
abstract class Transport{
protected String name;
protected Transport(String name){
this.name=name;
}
protected void DoSomething(){
//Creating some instances of the type of the current instance
}
}
class Bike: Transport {
public Bike(String name): base(name){
}
}
class Bus: Transport {
public Bus(String name): base(name){
}
}
我想做的是在Transport类的DoSomething方法中创建一些当前实例类型的实例。
我该怎么做?
我可以创建一个静态工厂方法,该方法接受我要创建的子类的名称,然后使用this.GetType().Name 将DoSomething 方法内的当前实例的类名传递给它。
但这是最好的方法吗?
非常感谢大家。
【问题讨论】:
标签: c# design-patterns inheritance constructor factory-pattern