コード例 #1
0
ファイル: Program.cs プロジェクト: miaodl/DesignPattern
 public override void Process(Request request)
 {
     request.Price *= 0.9;
 }
コード例 #2
0
ファイル: Program.cs プロジェクト: miaodl/DesignPattern
        public void TestMethod()
        {
            IHandler handler1 = new InternalHandler();
            IHandler handler2 = new DiscountHandler();
            IHandler handler3 = new MailHandler();
            IHandler handler4 = new RegularHandler();

            //组合链式结构
            //internal->mail->discount->retular->null
            handler1.Successor = handler3;
            handler3.Successor = handler2;
            handler2.Successor = handler4;
            IHandler head = handler1;

            Request request = new Request(20, PurchaseType.Mail);
            head.HandleRequest(request);

            Console.ReadLine();
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: miaodl/DesignPattern
 //需要具体IHandler类型处理的内容
 public abstract void Process(Request request);
コード例 #4
0
ファイル: Program.cs プロジェクト: miaodl/DesignPattern
 public override void Process(Request request)
 {
 }
コード例 #5
0
ファイル: Program.cs プロジェクト: miaodl/DesignPattern
 //按照链式方式依次把调用继续下去
 public virtual void HandleRequest(Request request)
 {
     if (request == null) return;
     if (request.Type == Type)
         Process(request);
     else
         if (Successor != null)
             successor.HandleRequest(request);
 }