一,什么是职责链模式(Chain of Responsibility)
职责链模式是一种行为模式,为解除请求的发送者和接收者之间的耦合,而使多个对象都有机会处理这个请求。将这些对象连接成一条链,并沿着这条链传递该请求,直到有一个对象处理它。
二,如下代码
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace _20.职责链模式{ //职责链模式是一种行为模式,为解除请求的发送者和接收者之间的耦合,而使多个对象都有机会处理这个请求。将这些对象连接成一条链,并沿着这条链传递该请求,直到有一个对象处理它。 class Program { static void Main(string[] args) { People p = new Chinses(); People p1 = new Usa(); p.SetSuccessor(p1); p.HandleRequest("美国人"); p.HandleRequest("中国人"); } } public abstract class People { protected People _people; public void SetSuccessor(People people) { this._people = people; } public abstract void HandleRequest(string request); } public class Chinses : People { public override void HandleRequest(string request) { if (request == "中国人") { Console.WriteLine("中国人执行任务"); } else { _people.HandleRequest(request); } } } public class Usa : People { public override void HandleRequest(string request) { if (request == "美国人") { Console.WriteLine("美国人执行任务"); } else { _people.HandleRequest(request); } } }}