Picker.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. namespace VisitorPattern
  3. {
  4. /// <summary>
  5. /// 捡货员
  6. /// 对销售订单,从仓库捡货。
  7. /// 对退货订单,将收到的货品归放回仓库。
  8. /// </summary>
  9. public class Picker : Visitor
  10. {
  11. public int Id { get; set; }
  12. public string Name { get; set; }
  13. public override void Visit(SaleOrder saleOrder)
  14. {
  15. Console.WriteLine($"开始为销售订单【{saleOrder.Id}】进行销售捡货处理:");
  16. foreach (var item in saleOrder.OrderItems)
  17. {
  18. Console.WriteLine($"【{item.Product.Name}】商品* {item.Qty}");
  19. }
  20. Console.WriteLine($"订单【{saleOrder.Id}】捡货完毕!");
  21. Console.WriteLine("==========================");
  22. }
  23. public override void Visit(ReturnOrder returnOrder)
  24. {
  25. Console.WriteLine($"开始为退货订单【{returnOrder.Id}】进行退货捡货处理:");
  26. foreach (var item in returnOrder.OrderItems)
  27. {
  28. Console.WriteLine($"【{item.Product.Name}】商品* {item.Qty}");
  29. }
  30. Console.WriteLine($"退货订单【{returnOrder.Id}】退货捡货完毕!", returnOrder.Id);
  31. Console.WriteLine("==========================");
  32. }
  33. }
  34. }