博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#设计模式:职责链模式(Chain of Responsibility)
阅读量:6861 次
发布时间:2019-06-26

本文共 1510 字,大约阅读时间需要 5 分钟。

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

 

转载于:https://www.cnblogs.com/May-day/p/9020740.html

你可能感兴趣的文章
JS学习之动态加载script和style样式
查看>>
solr之环境配置一
查看>>
wordpress 系列之 header 导航
查看>>
学习中的问题
查看>>
【十大经典数据挖掘算法】SVM
查看>>
oracle 游标
查看>>
Some lines about EF Code First migration.
查看>>
转载:Keytool 工具介绍
查看>>
shell脚本 expect 实现自动登陆
查看>>
SEH结构化异常处理
查看>>
OGG_GoldenGate数据迁移三进程Extract / Dump / Relicat(案例)
查看>>
OAF_文件系列11_实现OAF读写Excel包JXL和POI的区别(概念)
查看>>
未整理:MediaPlayer(1,2)
查看>>
c# 串口发送接收数据
查看>>
每周一荐:Objective-C的开源开发环境GNUstep
查看>>
10-C语言循环结构(一)
查看>>
python学习笔记--基础概要
查看>>
2018/11/28 scp eve-ng
查看>>
SQL WITH NOCHECK
查看>>
POJ3090 Visible Lattice Points
查看>>