zoukankan      html  css  js  c++  java
  • 职责链模式

        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("签收完毕,下班!");
            }
        }
  • 相关阅读:
    oracle 强杀进程
    oracle查询使用频率和磁盘消耗需要缓存大小
    Oracle定时器执行多线程
    Python
    Python- XML模块
    Python-标准库之OS模块
    Python
    Python-时间复杂度
    Python-冒泡排序
    Python-正则表达式
  • 原文地址:https://www.cnblogs.com/smailxiaobai/p/3643148.html
Copyright © 2011-2022 走看看