//一个女性(女儿、妻子或者是母亲)要求逛街,你要处理这个请求 public void HandleMessage(IWomen women) { if (women.getType() == this.level) { this.response(women); } else { if (this.nextHandler != null) //有后续环节,才把请求往后递送 { this.nextHandler.HandleMessage(women); } else //已经没有后续处理人了,不用处理了 { Console.WriteLine("---没地方请示了,按不同意处理---\n"); } } }
public void HandleMessage(IWomen women, int max = 10) { if (max <= 0) { throw new Exception("Error:超过责任链的阀值,会影响性能"); } if ((int)women.GetLevel() == (int)this._levelEnum) { this.Response(women); } else { if (this._nextHandler == null) { Debug.WriteLine($"-- {Enum.GetName(typeof( WomenLevelEnum), women.GetLevel()) } 没有地方请示,按不同意处理 --"); } else { this._nextHandler.HandleMessage(women, --max); } } }
//父亲的答复 protected override void response(IWomen women) { Console.WriteLine("--------女儿向父亲请示-------"); Console.WriteLine(women.getRequest()); Console.WriteLine("父亲的答复是:同意\n"); }
//有请示那当然要回应 protected abstract void response(IWomen women);
public void Response(IWomen women) { Debug.WriteLine($"{Enum.GetName(typeof(HandleLevelEnum) , this._levelEnum)} 同意 {Enum.GetName(typeof(WomenLevelEnum), women.GetLevel())} {women.GetRequest()} 的请求 "); }
//丈夫请示的答复 protected override void response(IWomen women) { Console.WriteLine("--------妻子向丈夫请示-------"); Console.WriteLine(women.getRequest()); Console.WriteLine("丈夫的答复是:同意\n"); }