Beispiel #1
0
        /// <summary>
        /// 测试 追加的情况.
        /// </summary>
        private static void Test2()
        {
            Approver wjzhang, gyang, jguo, meeting;
            wjzhang = new Director("张无忌");
            gyang = new VicePresident("杨过");
            jguo = new President("郭靖");
            meeting = new Congress("董事会");

            Approver rhuang;
            rhuang = new Manager("黄蓉");

            //创建职责链
            // 将“黄蓉”作为“张无忌”的下家
            wjzhang.Successor = rhuang;
            // 将“杨过”作为“黄蓉”的下家
            rhuang.Successor = gyang;

            gyang.Successor = jguo;
            jguo.Successor = meeting;

            //创建采购单
            PurchaseRequest pr1 = new PurchaseRequest(45000, 10001, "购买倚天剑");
            wjzhang.processRequest(pr1);

            PurchaseRequest pr2 = new PurchaseRequest(60000, 10002, "购买《葵花宝典》");
            wjzhang.processRequest(pr2);

            PurchaseRequest pr3 = new PurchaseRequest(160000, 10003, "购买《金刚经》");
            wjzhang.processRequest(pr3);

            PurchaseRequest pr4 = new PurchaseRequest(800000, 10004, "购买桃花岛");
            wjzhang.processRequest(pr4);
        }
Beispiel #2
0
 /// <summary>
 /// 具体请求处理方法
 /// </summary>
 /// <param name="request"></param>
 public override void processRequest(PurchaseRequest request)
 {
     // 处理请求.
     Console.WriteLine(
         "召开董事会审批采购单  审批采购单:{0},金额:{1}元,采购目的:{2}。",
         request.Number,
         request.Amount,
         request.Purpose);
 }
Beispiel #3
0
 /// <summary>
 /// 具体请求处理方法
 /// </summary>
 /// <param name="request"></param>
 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);
     }
 }
Beispiel #4
0
 /// <summary>
 /// 抽象请求处理方法
 /// </summary>
 /// <param name="request"></param>
 public abstract void processRequest(PurchaseRequest request);