[AYJS] wpf设计模式学习[19]-职责链模式

讲解:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象能处理请求为止。

AY:客户端不管过程,只要结果,后面 各个环节职责怎么触发的,到哪了,最终到哪结束都是不管的

图例:

blob.png

职责链,每次处理,都设置下一个处理的handler,形成一个链条,最好设置最终的Handler,保证每个都能处理

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace StrategyMo.ZhiZeLian
{
    public abstract class Handler
    {
        protected Handler successor;
        public void SetSuccessor(Handler successor)
        {
            this.successor = successor;
        }

        public abstract void HandleRequest(int request);
    }

    public class ConcreteHandler1 : Handler
    {
        public override void HandleRequest(int request)
        {
            if (request >= 0 && request < 10)
            {
                Console.WriteLine("{0}处理请求{1}", this.GetType().Name, request);
            }
            else if(successor!=null){
                successor.HandleRequest(request);
            }
        }
    }



}

客户端:

 Handler hander1 = new ConcreteHandler1();
            Handler hander2 = new ConcreteHandler1();
            Handler hander3 = new ConcreteHandler1();
            hander1.SetSuccessor(hander2);
            hander2.SetSuccessor(hander3);
            int[] request={2,5,14,22,21,3,20};
            foreach (var item in request)
            {
                hander1.HandleRequest(item);
            }

blob.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值