前言
业务场景
分别依次处理多个相似业务;每个业务按照多个灵活的方式进行处理。例如:移动公司推出三项套餐业务A,B,C;开通每个业务需要分别执行以下步骤:1、用户校验是否之前开通过;2、开通业务的同时并发送短信通知该用户;3、保证该操作执行完毕的进行的监听手段,等等多个步骤。若A、B、C套餐可以同时开通多个,需要按照A、B、C的顺序开通
应用
分析
- 模板方法:校验接口、业务接口、监听接口。。。
- 任务有严格的执行顺序
UML
TaskTemplate:定义抽象出来公共方法,来供子类实现,execute方法决定了公共方法执行的顺序
TaskHandler:任务,通过run方法调用execute方法,每个子类实现该方法,实现getOrder接口,决定了任务的执行顺序
HandlerChain:注入任务list,控制任务顺序,正序或者倒序等等
小结
例子举得是最简单的,如果业务较为简单,不用这种方式实现也可以,复杂的相似于本文的的业务场景,可以考虑上面的方法。