设计模式---责任链模式(C++实现)
/****************************************************************************************************
链式
概念(使用一个单链表,尾结点指向空,然后挨个遍历此结点指向的函数(这些函数都来自与抽象类中函数的重写)
将则责任链上的对象统统创建出来,然后执行到哪个对象,哪个对象就去调用这个重写的函数方法)
适用于:
链条式处理事情。工作流程化、消息处理流程化、事物流程化;
****************************************************************************************************/
#include <iostream>
using namespace std;
class CarHandle//责任链,设计一个类将其创建成链
{
public:
virtual void HandleCar() = 0;
public:
CarHandle *setNextHandle(CarHandle *carhandle)
{
this->carhandle = carhandle;
return this->carhandle;
}
protected:
CarHandle *carhandle;
};
class CarHandleHead : public CarHandle
{
public:
virtual void HandleCar()
{
cout << "处理车头" << endl;
if (this->carhandle != NULL)
{ carhandle->HandleCar(); }
}
};
class CarHandleBody : public CarHandle
{
public:
virtual void HandleCar()
{
cout << "处理车身" << endl;
if (this->carhandle != NULL)
{ carhandle->HandleCar(); }
}
};
class CarHandleTail : public CarHandle
{
public:
virtual void HandleCar()
{
cout << "处理车尾" << endl;
if (this->carhandle != NULL)
{ carhandle->HandleCar(); }
}
};
class CarHandleyou : public CarHandle
{
public:
virtual void HandleCar()
{
cout << "handle you" << endl;
if (this->carhandle != NULL)
{
carhandle->HandleCar();
}
}
};
void main()
{
CarHandleHead *head = new CarHandleHead;
CarHandleBody *body = new CarHandleBody;
CarHandleTail *tail = new CarHandleTail; //这里是创建一些列的对象,对象包含下一个结点的指针
CarHandleyou *you = new CarHandleyou;
head->setNextHandle(body);//在这里将这些函数使用链表串起来
body->setNextHandle(tail);
tail->setNextHandle(you);
you->setNextHandle(NULL);
//处理
head->HandleCar();
delete head;
delete body;
delete tail;
delete you;
system("pause");
}
参考: 传智播客--王保明
设计模式---责任链模式(C++实现)相关推荐
- Java设计模式-责任链模式
Java设计模式-责任链模式,我想这是值得你了解一下下的啦. 会了就当复习丫,不会来一起来看看吧. 很喜欢一句话:"八小时内谋生活,八小时外谋发展". 如果你也喜欢,让我们一起坚持 ...
- 设计模式--责任链模式--Java实现
设计模式–责任链模式–Java实现 责任链模式–链式数据结构–内存消耗–Java的awt事件一开始用责任链模式后来改为观察者模式–为什么呢?–现在的应用–dom事件–异常处理机制-过滤器链–等等 学习 ...
- 理解各种设计模式原则及区别丨浅谈Nginx中核心设计模式-责任链模式丨C++后端开发丨Linux服务器开发丨web服务器
理解各种设计模式原则及区别丨浅谈Nginx中核心设计模式-责任链模式 1. 开闭.单一职责.里氏替换.接口隔离等设计原则 2. 随处可见的模板方法 3. nginx中核心设计模式 责任链模式 4. 责 ...
- java责任链模式审批请假_Java设计模式-责任链模式
Java设计模式-责任链模式 Java版本:jdk1.8 IDE:IDEA 一 前言 本文介绍责任链模式以及Java下的实现. 二 概念 1.什么是责任链模式 责任链模式(Chain of Respo ...
- 一起学设计模式 - 责任链模式
责任链模式(ChainOfResponsibilityPattern)属于 行为型模式的一种,将请求沿着一条链传递,直到该链上的某个对象处理它为止. 概述 定义如下:一个请求有多个对象来处理,这些对象 ...
- 大话设计模式—责任链模式
顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链.这种模式给予请求的类型,对请求的发送者和接收者进行解耦.这种类型的设计模式属于行为 ...
- 设计模式 责任链模式
责任链模式 顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链.这种模式给予请求的类型,对请求的发送者和接收者进行解耦.这种类型的设计 ...
- php设计模式-责任链模式
最近重构代码发现责任链模式非常实用,所以简单总结了一下.总体来说,责任链模式更像是一种简化多种场景下调用处理的一种设计模式,特别适合if-else分支判断很多的场景.比如是根据不同会员等级给予不同的优 ...
- 深入理解设计模式-责任链模式(职责链模式)
文章目录 一.定义 二.使用场景 三.代码样例 1.需求 2.设计一个所有处理器都要实现的接口 3.实现各种处理器 4.客户端 5. 输出 四.要点与优缺点 结尾 一.定义 避免请求发送者与接收者耦合 ...
- 工作中常用的设计模式 -- 责任链模式
一般做业务开发,不太容易有大量使用设计模式的场景.这里总结一下在业务开发中使用较为频繁的设计模式.当然语言为 Java,基于 Spring 框架. 1 责任链模式(Chain of Responsib ...
最新文章
- CVPR 2022官方发布重要通知,禁止审稿期公开传播论文,静默期4个多月
- 从深度图到点云的构建方式
- es6学习笔记2-—symbol、变量与作用域
- 实践操作:六步教你如何用开源框架Tensorflow对象检测API构建一个玩具检测器
- CF1038D Slime 构造
- 传图识字java_Java:全面 清晰的 NIO 学习攻略
- 用户注意到用户计算机中千兆位网卡,为何你电脑上的千兆网卡跑不到千兆?
- 自研芯片鸿蒙系统,华为智慧屏:自研智慧芯片鸿蒙系统 9月发布
- CSRF:跨站请求伪造
- CoreData 从入门到精通(五)CoreData 和 TableView 结合
- 啊u学科学计算机,动画 | 《阿U学科学》:开学啦!在游戏中学习科学知识吧
- Redis学习总结(5)——阿里云Redis开发规范
- java8 comparator接口_Java8 Comparator 排序方法
- 【Java并发.3】对象的共享
- 【数字信号处理】基于matlab数字信号离散序列短时傅里叶变换【含Matlab源码 1545期】
- mid制作乐谱_乐谱编辑(在线简谱制作软件)
- 一些非常简单的Python代码
- MOEA/D算法原理及应用方向
- python贴吧爬虫-python贴吧爬虫
- wordpress添加备案链接 亲测无误