• 职责链模式


        static class Program
        {
            static void Main()
            {
                员工 员工 = new 普通员工();
                员工 主管 = new 员工主管();
                员工 boss = new BOSS();
                员工.设置上级(主管);
                主管.设置上级(boss);
                快递包裹 包裹 = new 快递包裹();
                包裹.价值 = 80040;
                员工.收取快递(包裹);
                Console.ReadKey();
            }
        }
        abstract class 员工
        {
            protected 员工 上级;
            public void 设置上级(员工 员工)
            {
                this.上级 = 员工;
            }
            public abstract void 收取快递(快递包裹 包裹);
        }
        class 普通员工 : 员工
        {
            public override void 收取快递(快递包裹 包裹)
            {
                if (包裹.价值 < 50)
                {
                    Console.WriteLine("这么没价值的我等小虾签收了");
                    包裹.签收();
                }
                else
                {
                    上级.收取快递(包裹);
                }
            }
        }
        class 员工主管 : 员工
        {
            public override void 收取快递(快递包裹 包裹)
            {
                if (包裹.价值 < 500)
                {
                    Console.WriteLine("还没500块的我签收了");
                    包裹.签收();
                }
                else
                {
                    上级.收取快递(包裹);
                }
            }
        }
        class BOSS : 员工
        {
            public override void 收取快递(快递包裹 包裹)
            {
                Console.WriteLine("多少钱的我都能收");
                包裹.签收();
            }
        }
        class 快递包裹
        {
            public int 价值 { get; set; }
            public void 签收()
            {
                Console.WriteLine("签收完毕,下班!");
            }
        }
  • 相关阅读:
    排序
    wine-qq 安装
    逆元模板
    最长上升子序列
    SGU[115] Calendar
    SGU[123] The sum
    SGU[105] Div 3
    SGU[102] Coprimes
    SGU[100] A+B
    poj-1325-Machine Schedule
  • 原文地址:https://www.cnblogs.com/smailxiaobai/p/3643148.html
Copyright © 2020-2023  润新知