职责链模式
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("签收完毕,下班!"); } }