所以我正在研究一个webapp(Seam + JSF / Facelets),我需要创建报告生成服务 - 目前有三种不同的报告类型和三种不同的格式。我希望你建议一些好的模式来实现这个功能,这可以在actionBean中保存我的东西,如:
if (selectedFormat == pdf) {
pdfReportService.generateReportNr1();
} else if (selectedFormat == csv) {
csvReportService.generateReportNr1();
} else if [...]
所以我猜有ReportGenerator接口可以提供不同类型报告的方法,ReportGenerator实现不同的格式类型。但是如何在一个服务中组合所有支持的格式实现,以便可以从操作bean轻松调用它而无需任何切换逻辑?我应该在一些常见服务中收集它们并公开List getSupportedFormats()方法吗?给我你的想法:)