实际案例

举例以 订单 履约流程 抽象,不同订单类型的“发货”行为即为不同的策略。

接口:

  1. public interface OrderProcessManagerService<T, V, K> {
  2. /**
  3. * 配送中处理(订单状态32)
  4. * @param t
  5. */
  6. ResultModel deliveryProcess(T t);
  7. /**
  8. * 妥投处理(订单状态64)
  9. * @param v
  10. */
  11. ResultModel completeProcess(V v);
  12. /**
  13. * 详情
  14. * @param k
  15. */
  16. ResultModel detail(K k);

实现类1:

  1. public class OrderProcessSendManagerServiceImpl implements OrderProcessManagerService<OrderSendDTO, OrderCompleteDTO, Long>{
  2. public ResultModel deliveryProcess(OrderSendDTO orderSendDTO){
  3. ......
  4. }
  5. public ResultModel completeProcess(OrderCompleteDTO orderCompleteDTO) {
  6. ......
  7. }
  8. public ResultModel detail(Long orderId){
  9. .....
  10. }
  11. }

实现类2:

  1. public class OrderProcessLocManagerServiceImpl implements OrderProcessManagerService<OrderSendCodeDTO, WriteOffParam, Long>{
  2. // 具体代码不贴了,理解就好;
  3. }

引用

https://www.runoob.com/design-pattern/strategy-pattern.html