时间:2023-06-12 10:57:01 | 来源:网站运营
时间:2023-06-12 10:57:01 来源:网站运营
模板模式(Java版):public interface BaseTrainService<K, V> { V execute(K vo);}
@Slf4jpublic abstract class CommonTrainService<K, V> implements BaseTrainService<K, V> { // 预处理 protected abstract boolean preHandle(K vo); // 核心处理流程 protected abstract V handle(K vo); // 后处理 protected abstract V postHandle(K vo, V dto); @Override public final V execute(K vo) { V dto = null; try { boolean flag = preHandle(vo); if (flag) { dto = handle(vo); } dto = postHandle(vo, dto); } catch (Exception e) { log.error("处理训练任务异常", e); } return dto; }}
@Slf4jpublic class SimpleTrainService extends CommonTrainService<TrainVO, Response<TrainDTO>> { @Override protected boolean preHandle(TrainVO vo) { return true; } @Override protected Response<TrainDTO> handle(TrainVO vo) { TrainDTO result = new TrainDTO(); ... return Response.success(result); } @Override protected Response<TrainDTO> postHandle(TrainVO vo, Response<TrainDTO> dto) { if (dto == null) { return Response.fail("创建训练任务失败"); } return dto; } }
@Slf4jpublic class ComplexTrainService extends CommonTrainService<TrainVO, Response<TrainDTO>> { @Override protected boolean preHandle(TrainVO vo) { List<TrainRecord> list = .... return CollectionUtils.isEmpty(list); } @Override protected Response<TrainDTO> handle(TrainVO vo) { TrainDTO result = new TrainDTO(); ... return Response.success(result); } @Override protected Response<TrainDTO> postHandle(TrainVO vo, Response<TrainDTO> dto) { if (dto == null) { return Response.fail("创建训练任务失败"); } return dto; } }
public class Client { public Response<TrainDTO> simpleTrainTask(TrainVO vo){ ComplexTrainService service = new ComplexTrainService(); return service.execute(vo); }}
关键词:模式,模板