public override void ProcessRequest(PurchaseRequest request) { if (request.Amount > 50000 && request.Amount < 300000) { Console.WriteLine("{0} 总裁批准了对原材料 {1} 的采购计划!", this.Name, request.ProductName); } else { Console.WriteLine("这个采购计划的金额比较大,需要一次董事会会议讨论才能决定!"); } }
public override void ProcessRequest(PurchaseRequest request) { if (request.Amount > 10000 && request.Amount <= 50000) { Console.WriteLine("{0} 财务经理批准了对原材料{1}的采购计划!", this.Name, request.ProductName); } else if (NextApprover != null) { NextApprover.ProcessRequest(request); } }
// 具体请求处理方法 public override void ProcessRequest(PurchaseRequest request) { if (request.Amount < 80000) { // 处理请求 Console.WriteLine("经理 {0} 审批采购单:{1},金额:{2} 元,采购目的:{3}。", this.name, request.Number, request.Amount, request.Purpose); } else { this.successor.ProcessRequest(request); } }
static void Main(string[] args) { PurchaseRequest requestDao = new PurchaseRequest(8000, "单刀5把"); PurchaseRequest requestHuaJi = new PurchaseRequest(10000, "10把方天画戟"); PurchaseRequest requestJian = new PurchaseRequest(80000, "5把金丝龙鳞闪电劈"); Approver manager = new Manager("黄飞鸿"); Approver financial = new FinancialManager("黄麒英"); Approver ceo = new CEO("十三姨"); // 设置职责链 manager.NextApprover = financial; financial.NextApprover = ceo; // 处理请求 manager.ProcessRequest(requestDao); manager.ProcessRequest(requestHuaJi); manager.ProcessRequest(requestJian); Console.ReadLine(); }
public static void Main(string[] args) { // 创建职责链 Approver andy = new Director("Andy"); Approver jacky = new Manager("Jacky"); Approver ashin = new VicePresident("Ashin"); Approver anya = new President("Anya"); Approver meeting = new Congress("Congress"); andy.SetSuccessor(jacky); jacky.SetSuccessor(ashin); ashin.SetSuccessor(anya); anya.SetSuccessor(meeting); // 构造采购请求单并发送审批请求 PurchaseRequest request1 = new PurchaseRequest(45000.00, "REQUEST201706001", "购买PC和显示器"); andy.ProcessRequest(request1); PurchaseRequest request2 = new PurchaseRequest(60000.00, "REQUEST201706002", "2017开发团队活动"); andy.ProcessRequest(request2); PurchaseRequest request3 = new PurchaseRequest(160000.00, "REQUEST201706003", "2017公司年度旅游"); andy.ProcessRequest(request3); PurchaseRequest request4 = new PurchaseRequest(800000.00, "REQUEST201706004", "租用新临时办公楼"); andy.ProcessRequest(request4); Console.ReadKey(); }
/// <summary> /// 处理请求 /// </summary> /// <param name="request"></param> public abstract void ProcessRequest(PurchaseRequest request);
public static void InitializeDemo(PurchaseRequest request) { PurchaseRequestHandler requestHandler = new PurchaseRequestHandler(); requestHandler.SendRequestToApprover(request); }
// 具体请求处理方法 public override void ProcessRequest(PurchaseRequest request) { // 处理请求 Console.WriteLine("董事会 {0} 审批采购单:{1},金额:{2} 元,采购目的:{3}。", this.name, request.Number, request.Amount, request.Purpose); }