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

结构图:

设计模式:职责链模式(Chain Of Responsibility)

处理请求类:

  //抽象处理类
    abstract class Handler
    {
        protected Handler successor;

        public void SetSuccessor(Handler successor)
        {
            this.successor = successor;  //设置继任者
        }

        public abstract void HandlerRequest(int request);  //处理请求的抽象方法
    }

    //具体处理类1
    class ConcreteHandler1 : Handler
    {
        public override void HandlerRequest(int request)
        {
            if (request >= 0 && request < 10)
            {
                Console.WriteLine("{0}处理请求{1}", this.GetType().Name, request);  //处理该请求
            }
            else if (successor != null)
            {
                successor.HandlerRequest(request);  //将请求转移到继任者处理
            }
        }
    }

    //具体处理类2
    class ConcreteHandler2 : Handler
    {
        public override void HandlerRequest(int request)
        {
            if (request >= 10 && request < 20)
            {
                Console.WriteLine("{0}处理请求{1}", this.GetType().Name, request); //处理该请求
            }
            else if (successor != null)
            {
                successor.HandlerRequest(request); //将请求转移到继任者处理
            }
        }
    }

    //具体处理类3
    class ConcreteHandler3 : Handler
    {
        public override void HandlerRequest(int request)
        {
            Console.WriteLine("{0}处理请求{1}", this.GetType().Name, request); //处理该请求
        }
    }
View Code

相关文章:

  • 2021-09-28
  • 2021-09-12
猜你喜欢
  • 2021-08-18
  • 2022-12-23
  • 2021-12-14
  • 2022-01-20
  • 2022-01-16
  • 2022-02-17
  • 2022-01-07
相关资源
相似解决方案