3
我有一個工廠,有一些具體的子類用於生成報告(.txt,.csv,.xls) 我想使具體類的接口是通用的,以便我可以傳入diff類型的參數(而不是DataTable,我需要使用DataSet或其他類實例作爲參數)。這是我的界面。如何在工廠使用通用接口
interface IReportCreator
{
bool Create(DataTable dt);
}
我所做的接口generic..like下面
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); //這裏的論點我需要它作爲通用 類工廠 {// 我不知道如何回到這裏的接口.. }
任何幫助將不勝感激..
您能否提供您工廠的代碼? –
public IReportCreator ReportCreator {get; set;}'? – Jeff
我已經放置了我以前工廠的代碼 – Anish