我有一个工厂,它有一些用于生成报告的具体子类(.txt、.csv、.xls)我想让具体类的接口是通用的,以便我可以传入不同类型的参数(而不是 DataTable我需要使用 DataSet 或其他一些类实例作为参数)。这是我的界面。
interface IReportCreator
{
bool Create(DataTable dt);
}
我将界面设置为通用界面……就像下面的界面一样
interface IReportCreator<T>
{
bool Create(T args);
}
现在我的问题是如何从工厂返回通用接口我以前的工厂代码
class Factory
{
static IReportCreator GetReportCreator(string type)
{
IReportCreator reportCreator = null;
if(type == "txt")
reportCreator = new TextCreator();
if(type == "csv")
reportCreator = new CSVCreator();
}
}
而在cient .. 我这样称呼 IReportCreator repCreator = Factory.GetReportCreator("txt"); repCreator.Create(// arg); // 这里的参数我需要把它变成泛型类工厂 { // 我不知道如何在这里返回接口.. }
任何帮助将不胜感激..