策略模式
1、策略模式结构图
策略模式主要由以上三个身份组成,这里就不过多介绍策略模式的基础知识,默认大家已经对策略模式已经有了一个基础的认识。
2、业务需求
现有一个广告点击数据埋点上报的需求,上报的埋点数据根据点击的广告位置不同做区分进行上报,每个广告位置的数据进行分表存储。(eg:这里大家也不必深究分表存储为什么要这么做,只聊策略模式的实际应用)
3、代码实现
由于是实战案例,基于SpringBoot框架的,主要要使用的Spring的一些功能,所以大家要注意。
第一步:定义策略类
首先定义一个上报的接口
public interface AdvertisingDataReported {
String advertisingDataReported(Object param);
}
第二步:定义具体的策略实现类
@Service
public class BottomAdvertisingDataReported implements AdvertisingDataReported {
@Override
public String advertisingDataReported(Object param) {
// 具体的业务逻辑略
return null;
}
}
第三步:策略控制类
由于策略模式有好多具体的具体策略实现,那么到底使用哪一个策略需要根据入参,也就是业务中的广告类型进行判断,那么该如何优雅的进行判断呢?