首页 > 解决方案 > 在哪里放置工厂方法?

问题描述

我正在实施工厂模式以支持使用 2 个不同的报告库(Crystal Reports 和 DevExpress)生成报告。

所以我创建了一个Default类库项目并IReport为其添加了一个接口。然后我创建了 2 个进一步的类库项目,每个项目都有一个实现的类IReport.

此外,在我的Default项目中,我还添加了一个“工厂”类:

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项目。我的问题是:

我需要在哪里拥有工厂类,这样我就可以创建具体的类而不向我的主项目添加不必要的引用?

标签: c#factory

解决方案


推荐阅读