我正在尝试实施一种生成报告的工厂方法。
为此,我创建了一个名为IReport的接口,一个ReportType枚举,详细说明了可用的不同报告和ReportFactory类。
根据报告的类型,你可以调用一个返回IReport对象的GenerateReport方法:
IReport GenerateReport(ReportType reportType);
但是,不同的报告需要不同的参数。
问题:
我是否必须为每种报告类型创建不同的GenerateReport方法?
创建一个名为ReportParameters的类是否一个坏主意,该类具有所有可能的参数,并且工厂方法根据报告类型知道要使用哪些参数?
例如
class ReportParameters
{
ReportType RepType;
DateTime StartDate;
DateTime EndDate;
int CustomerID;
int OrderID;
}
然后使用
IReport GenerateReport(ReportParameters params);
非常感谢任何评论
答案 0 :(得分:0)
你说:
创建一个名为ReportParameters的类是不是一个坏主意 所有可能的参数和工厂方法都知道哪些参数 根据报告类型使用?
我并不是特别这么认为。这对我来说听起来像是一种工厂。我对此有两点想法:
Builder设计模式的目的是分离 从其表示构造复杂对象。通过这样做, 相同的构造过程可以创建不同的表示。