最近对于业务代码进行分层重构,较多使用策略模式来进行分层与分流,特此记录。
此处假设以构建(build)与门禁(gate)两种任务为例:
1.service层定义抽象类与两种任务各自的实现类,我这边直接放在service -> helper下
抽象类:
构建任务实现类:
/**
* @author ChessC
* @version v1.0
* @date 15:17 2021/1/9
*/
@Service
public class BuildJobStrategyHelper extends JobStrategyHelper {
@Override
public String splitType() {
return JobTypeConstants.BUILD_JOB;
}
@Override
public String helpMethod(StrategyTestModel model) {
return model.getMessage();
}
}
门禁任务实现类:
/**
* @author ChessC
* @version v1.0
* @date 15:21 2021/1/9
*/
@Service
public class GateJobStrategyHelper extends JobStrategyHelper {
@Override
public String splitType() {
return JobTypeConstants.GATE_JOB;
}
@Override
public String helpMethod(StrategyTestModel model) {
return model.getMessage();
}
}
2.在service层模拟业务处理逻辑,可用一个map进行注入,从而直接实现分层
3.测试代码及结果如下:
微服务代码,分层可扩展性十分重要,在前人埋下的数不清坑中尤能体会。上述仅以简单例子进行演示,旨在记录最近重构过程中使用较多的方法,持续改进,继续学习提高。