【发布时间】:2015-02-21 17:37:55
【问题描述】:
我怎样才能建立一个这样的工厂:
interface A {
}
class B: A {
string b;
public B(string b) { this.b = b; }
}
class Factory {
public static T create<T>(/*somehow pass constructor parameters*/) where T: A {
return new T(/*constructor parameters*/);
}
}
B test = Factory.create<B>("test");
我知道,我可以只使用类构造函数,但是这种模式可能有一些用途,我想知道这是否可能。
【问题讨论】:
-
这不起作用,因为
/*constructor parameters*/的数量(和类型)取决于T是什么。A的实现者不受其构造函数可以采用的参数的限制。此外,一个类型可以公开 几个 构造函数。