我正在实现工厂模式以支持使用2个不同的报告库(Crystal Reports和DevExpress)生成报告。
因此,我创建了一个Default
类库项目,并为其添加了一个IReport
接口。然后,我再创建2个类库项目,每个项目都有一个实现IReport.
此外,在我的Default
项目中,我还添加了“ Factory”类:
public sealed class ReportFactory : IReportFactory
{
public IReport Get(string extension)
{
switch (extension.ToLower())
{
case "rpt":
//TODO create crystal report instance
break;
case "rpx":
//TODO create devexpress report instance
break;
default:
throw new ArgumentNullException(nameof(extension));
}
}
}
我的主应用程序仅引用了Default
项目。我的问题是:
我在哪里需要工厂类,这样我就可以创建具体的类,而不必在主项目中添加不必要的引用?