前言:
记录工作中,学会使用的所有设计模式,真实代码用例,以下用例中使用到了模板方法、工厂、策略三种混合使用
需求说明
消息发送功能的渠道有很多,如IM、SMS、Email、企业微信、企业公众号、腾讯邮箱等等,需要做一个可以配置一种或是多种渠道发送的模板,得到一种key,其他业务方调用的时候带上这个key,就能判断出需要发送那些渠道,起到一个配置和日志记录的功能
模板方法
这里的渠道有很多种,为了考虑系统的可用性和扩展性,应该创建一个抽象类,使其他具体渠道来集成它。因为消息发送的步骤差不多都是一样的:1、参数检查是否正确;2、之前环境准备(包括一些数据查询、bean的注入功能);3、消息发送;4、日志记录;所以,我们可以使用模板方法,把这几个方法提取出来;在handle方法里开始执行
public Result<Boolean> handle(UmMessageSendDTO data) throws CheckException {
//环境准备
envirimentInit(data);
//处理之前数