实际案例
举例以 订单 履约流程 抽象,不同订单类型的“发货”行为即为不同的策略。
接口:
public interface OrderProcessManagerService<T, V, K> {
/**
* 配送中处理(订单状态32)
* @param t
*/
ResultModel deliveryProcess(T t);
/**
* 妥投处理(订单状态64)
* @param v
*/
ResultModel completeProcess(V v);
/**
* 详情
* @param k
*/
ResultModel detail(K k);
实现类1:
public class OrderProcessSendManagerServiceImpl implements OrderProcessManagerService<OrderSendDTO, OrderCompleteDTO, Long>{
public ResultModel deliveryProcess(OrderSendDTO orderSendDTO){
......
}
public ResultModel completeProcess(OrderCompleteDTO orderCompleteDTO) {
......
}
public ResultModel detail(Long orderId){
.....
}
}
实现类2:
public class OrderProcessLocManagerServiceImpl implements OrderProcessManagerService<OrderSendCodeDTO, WriteOffParam, Long>{
// 具体代码不贴了,理解就好;
}