消息发送功能搭配策略和建造者设计模式(绝对经典)

前言

消息发送可以简单划分为:短信、邮箱、消息推送、app消息发送等几种模式,但是随着业务的扩大很有可能引入其他的消息发送方式,如果基于if-else或者switch-case的方式,代码会显得耦合度很高,迭代开发要修改的地方很多,所有抽象出接口,使用策略模式会很好的解耦。

设计思想

1、消息发送独立成一个单独的服务

2、把消息类型抽象出一个服务提供者provider接口,抽象方法是发送消息

3、每个不同的消息实现provider接口

4、定义消息发送的服务接口

5、服务接口的实现组装各个消息模板,调用消息提供的接口去发送

6、定义两个实体类 消息配置类(比如发送短信是appId,assessKey ,发送邮件的邮箱和密码信息等)模板配置类 比如短信模板,邮件模板等

核心实现 

消息服务接口实现类要实现ApplicationContextAware接口,以便到ApplicationContext容器拿到不同消息的provider的实现。

代码实现

由于粘贴代码会导致篇幅过长,上传到了码云上 

地址:https://gitee.com/devil_1/message.git

你可能感兴趣的:(springboot,设计模式,java,开发语言,后端)