【发布时间】:2015-01-29 21:35:00
【问题描述】:
我想用面向对象的设计模式创建报表机制。我想创建一个报告生成器。 报告可以是 PDF、Wrod、HTML。所以我创建了一个这样的界面:
interface IReportGenerator{
Report Generate();
}
class PDFReportGenerator : IReportGenerator{
public Report Generate(){
retrun ******;
}
}
但是我有很多类型的报告。 FeaturedProductsReport、MostActiveCustomersReport、BestSellerReport等
每种类型的报告都有不同的参数。所以我可以聚合它们。我该如何做面向对象的设计这些逻辑?
【问题讨论】:
-
听起来你需要分离关注点。报告的 CONTENT 和呈现它的 FORMAT 之间存在差异,因此您可能需要两个接口 - IAmAReportDefinition 和 IAmAFormatDefinition
-
只需使用
Dictionary <string,string>并存储参数名称和值。或者,如果您需要更复杂的东西,请创建一个自定义类并使用Dictionary <string, object>
标签: java c# oop design-patterns interface