c# - 在哪里放置工厂方法?
问题描述
我正在实施工厂模式以支持使用 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
项目。我的问题是:
我需要在哪里拥有工厂类,这样我就可以创建具体的类而不向我的主项目添加不必要的引用?
解决方案
推荐阅读
- airflow - 可以使用追赶来回填 Airflow 中失败的 dag 运行吗?
- node.js - 试图在nodejs中的猫鼬模式中为模式分配值
- python - python gRPC 错误:“错误”:“13 内部:无法序列化响应!” 尝试在列表请求中返回重复消息而不是流时
- flutter - Flutter 的热重载未完成 - M1
- r - 基于渐进式标准过滤数据框创建一个表,其中包含 R 中的两个变量
- python-3.x - 如何使用plotly objs将数据框每一列的最大年度值的垂直线添加到下图的每个轨迹中?
- azure - Azure Monitor 能否抓取在 Azure 以外的其他提供商处运行的应用程序的端点?
- python - 在特定条件下对大型数据集进行欠采样,应用于 python/pandas 中的其他列
- python - 通过 Azure 笔记本从 blob 容器访问 csv 文件
- php - 关于为复杂页面存储/检索数据的问题