springboot基于注解方式实现策略模式
在项目开发的过程中,我们经常会遇到很多的业务分支,一般我们都采用switch或者if else简单粗暴来处理,当每次我们需要新增一个分支业务逻辑时,就需要修改整体业务逻辑。
因此在项目中,可以采用策略模式进行优化
例如:
使用策略模式发送不同的信息
1、定义策略分类
/**
*@Description 定义策略分类
*@Author aogula
*@Date 2021/1/7
*@Time 13:57
*/
public enum MsgType {
/**
* 微信消息
*/
WECHAT_MSG,
/**
* 短信消息
*/
SMS_MSG;
}
2、定义策略注解
/**
*@Description 策略注解
*@Author aogula
*@Date 2021/1/7
*@Time 14:00
*/
@Target({
ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface Type {
MsgType value();
}
3、定义策略接口
/**
*@Description 策略接口
*@Author aogula
*@Date 2021/1/7
*@Time 13:58
*/
public interface MsgHandler {
/**
* 发送信息
* @param msg
*/
void handleMsg(String msg);
}
4、定义实现类
4.1短信消息实现类
/**
*@Description 短信消息策略实现类
*@Author aogula
*@Date 2021/1/7
*@Time 13:59
*/
@Component
@Type(value = MsgType