C#设计模式:职责链模式(Chain of Responsibility)

一,什么是职责链模式(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);
            }
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/May-day/p/9020740.html