简单工作流程的设计模式

时间:2018-01-21 02:18:06

标签: java spring design-patterns

我正在开发一个java独立应用程序/框架。应用程序每天根据数据库生成的数据生成一次报告,计划每天运行。该应用程序必须是通用的,以支持不同的报告。经过一些研究,我想将每个报告的元数据存储在数据库中。对于例如报告名称,启用,sql查询,它返回报告的数据等。

每个计划作业都与指定报告(报告ID)相关联。

如此简短的工作流程 预定作业运行>检索特定报告的元数据>运行sql查询> FTP报告文件>发送电子邮件报告>端

可能会添加更多步骤。而且根据步骤,它可能不需要成功完成。对于例如如果FTP失败,则流程应该继续。

驱动流的当前类是ReportService,它检索元数据,使用FTP类,然后使用Email类。

由于我想使框架可扩展,用户可以扩展ReportService类并转换检索到的数据,在继续使用常规流程(ftp> email)之前调用其他一些业务服务。

我正在寻找设计模式,这将帮助我使框架通用且易于扩展,特别是实现工作流的模式,其中如果其中一个步骤失败,则取决于流程应该终止或继续的步骤。

1 个答案:

答案 0 :(得分:0)

查看DecoratorChain of ResponsibilityPublish/Subscribe。所有这些模式都允许您将行为链接在一起。