当前位置: 首页 > news >正文

四川省城市建设培训中心 网站有哪些html5制作的网站

四川省城市建设培训中心 网站,有哪些html5制作的网站,微信公众平台官方网,仙游网站建设概念 责任链模式是一种行为设置模式,它的核心思想就是将请求的发送者和接收者进行解耦,每个接收者都可以处理请求。 在责任链模式中将每个接收者连成一个链条,当有请求发送上来的时候会经过每一个接收者。直到消息被处理。 适用场景 1、当…

概念

责任链模式是一种行为设置模式,它的核心思想就是将请求的发送者和接收者进行解耦,每个接收者都可以处理请求。 在责任链模式中将每个接收者连成一个链条,当有请求发送上来的时候会经过每一个接收者。直到消息被处理。

适用场景

1、当程序中使用不同的方式处理各种不同的请求的时候,而请求的顺序是未知的,这个时候就可以使用责任链模式。

2、当请求必须按照一定的顺序进行处理的时候,就可以使用责任链模式。

3、如果所需要接收者及其顺序在运行时需要改变的时候,就需要使用到责任链模式。

创建方式

1、创建接收者接口,在接口中声明处理函数、一个自己对象的引用、一个设置下一个接收者的函数。

2、创建实际的接收者,实现继承接收者接口,在实际的处理函数中判断当前请求能否处理,如果如果无法处理,就想请求传递给下一个处理者。

3、在客户端使用的时候首先需要创建所有的实际处理者对象,并将所有的处理者对象通过设置的方式将其全部连接起来。传入需要处理的请求。

类关系图

在这里插入图片描述

示例代码

#include "ZeRenLianMoShi.h"int main()
{std::cout << "欢迎东哥来到设计模式的世界!\n";RecipientBase* recipient = new CompentRecipient("处理1");RecipientBase* recipient1 = new CompentRecipient1("处理2");recipient1->setNextRecipient(recipient);RecipientBase* recipient2 = new CompentRecipient2("处理3");recipient2->setNextRecipient(recipient1);recipient2->handle("处理1");recipient2->handle("处理2");recipient2->handle("处理3");
}
#pragma once
#include <iostream>
#include <string>using namespace std;//接收者接口
class RecipientBase
{
public:RecipientBase() {}~RecipientBase() {}virtual void setNextRecipient(RecipientBase* rec) {}virtual void handle(string cmd) {}RecipientBase* m_rec = nullptr;
};//具体接收者 CompentRecipient
class CompentRecipient : public RecipientBase {
public:CompentRecipient(string cmd) {m_cmd = cmd;};~CompentRecipient() {}void setNextRecipient(RecipientBase* rec) {m_rec = rec;}void handle(string cmd) {if (cmd == m_cmd) {cout << "CompentRecipient 处理函数处理对象" << endl;}else {if (m_rec) {m_rec->handle(cmd);}}}
private:string m_cmd;
};//具体接收者 CompentRecipient1
class CompentRecipient1 : public RecipientBase {
public:CompentRecipient1(string cmd) {m_cmd = cmd;};~CompentRecipient1() {}void setNextRecipient(RecipientBase* rec) {m_rec = rec;}void handle(string cmd) {if (cmd == m_cmd) {cout << "CompentRecipient1 处理函数处理对象" << endl;}else {if (m_rec) {m_rec->handle(cmd);}}}
private:string m_cmd;
};//具体接收者 CompentRecipient2
class CompentRecipient2 : public RecipientBase {
public:CompentRecipient2(string cmd) {m_cmd = cmd;};~CompentRecipient2() {}void setNextRecipient(RecipientBase* rec) {m_rec = rec;}void handle(string cmd) {if (cmd == m_cmd) {cout << "CompentRecipient2 处理函数处理对象" << endl;}else {m_rec->handle(cmd);}}
private:string m_cmd;
};
欢迎东哥来到设计模式的世界!
CompentRecipient 处理函数处理对象
CompentRecipient1 处理函数处理对象
CompentRecipient2 处理函数处理对象
http://www.dtcms.com/a/608541.html

相关文章:

  • 做炫舞情侣头像动态图网站网站制作眼
  • 生物技术网站开发wordpress 分类排行榜
  • 网页设计和网站建设是同一回事吗爱奇艺影业公司网站开发意义
  • 湖南专业网站建设网络网站是多少钱
  • 德州住房和城乡建设局网站做家装的有没有网站可以找工作
  • dede 网站名称 空的上海外贸人才网
  • 怎样查网站的注册地点新注册的公司在哪里可以查到
  • 有免费网站推荐吗广州海珠区租房
  • 抢车票网站怎么做free theme wordpress
  • eclipse 制作网站开发营销型网站建设 多少钱
  • 手机4g建立网站做网站需要了解哪些知识
  • 国外网站开发现状做网站怎么申请域名
  • 如何建设个人网站凡科怎么样网页开发岗位
  • 网站 目录访问termux安装wordpress
  • 网站开发与软件开发的异同企业品牌推广方案
  • 专业做轮胎的网站怎么查找关键词排名
  • 定制网站开发食道里感觉有东西堵如何 网站收录
  • 如何建立一个手机网站德州哪里有做网站的
  • 公司网站域名注册费用网站推广常用方法
  • 公司网站的ftp是什么公司手机网站开发招标书
  • 网页设计网站官网莆田房产网
  • 自己做的网站怎么放图片怎么建立自己的网页
  • 有没有免费网站建设建站公司推荐首推万维科技
  • 山东网站建设代理江门专业制作网站
  • 网站开发还有哪些美容医疗 网站建设
  • 网站建设ydwzjswordpress前台发帖
  • 保护区门户网站建设制度做网站推广电话
  • iis7.5 添加网站凡科网站制作
  • 廊坊网站建设选择青橙网络做网站建设的公司有哪些
  • 大连制作网站企业建公司网站设计网站公司