C# 责任链模式

 /*
     * 责任链模式
     * abstract 抽象类 抽象方法  不能被实例化,被继承类必须实现抽象方法
     * 
     */
    public abstract class Response
    {
        protected Response NextResponse;

        public abstract void Handle(int dayNum);
    }

    public class Director : Response
    {
        public Director()
        {
            NextResponse = new TopManage();
        }

        public override void Handle(int dayNum)
        {
            Console.WriteLine("主管审批同意");
            if (dayNum > 3)
            {
                NextResponse.Handle(dayNum);
            }
        }
    }

    public class TopManage : Response
    {
        public TopManage()
        {
            NextResponse = new Chief();
        }
        public override void Handle(int dayNum)
        {
            Console.WriteLine("经理审批同意");
            if (dayNum > 7)
            {
                NextResponse.Handle(dayNum);
            }
        }
    }


    public class Chief : Response
    {
        public override void Handle(int dayNum)
        {
            Console.WriteLine("总监审批同意");
        }
    }

//调用
 Response direct = new Director();
            direct.Handle(9);

 

posted @ 2020-06-10 16:08  有意思7  阅读(210)  评论(0编辑  收藏  举报