Ejemplo n.º 1
0
 public override void ProcessRequest(PurchaseRequest request)
 {
     if (request.Amount > 50000 && request.Amount < 300000)
     {
         Console.WriteLine("{0} 总裁批准了对原材料 {1} 的采购计划!", this.Name, request.ProductName);
     }
     else
     {
         Console.WriteLine("这个采购计划的金额比较大,需要一次董事会会议讨论才能决定!");
     }
 }
Ejemplo n.º 2
0
 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);
     }
 }
Ejemplo n.º 3
0
 // 具体请求处理方法
 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);
     }
 }
Ejemplo n.º 4
0
        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();
        }
Ejemplo n.º 5
0
        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();
        }
Ejemplo n.º 6
0
 /// <summary>
 /// 处理请求
 /// </summary>
 /// <param name="request"></param>
 public abstract void ProcessRequest(PurchaseRequest request);
Ejemplo n.º 7
0
        public static void InitializeDemo(PurchaseRequest request)
        {
            PurchaseRequestHandler requestHandler = new PurchaseRequestHandler();

            requestHandler.SendRequestToApprover(request);
        }
Ejemplo n.º 8
0
 // 具体请求处理方法
 public override void ProcessRequest(PurchaseRequest request)
 {
     // 处理请求
     Console.WriteLine("董事会 {0} 审批采购单:{1},金额:{2} 元,采购目的:{3}。",
                       this.name, request.Number, request.Amount, request.Purpose);
 }