设计模式复习-职责链模式
2023-09-11 14:14:01 时间
#pragma once
#include "stdafx.h"
#include<set>
#include<string>
#include<iostream>
using namespace std;
/*
设计模式-职责链模式(Chain of Responsibility)
使多个对象都有机会处理请求,从而避免请求的开发者和接受者之间的耦合关系。
将这个对象连成一条链,并沿着这条链传递请求,直到有一个对象处理他为止。
*/
class CHandler {//定义一个处理请求的接口
protected:
CHandler *mpSuccessor;
public:
CHandler() {mpSuccessor = NULL;}
void SetSuccessor(CHandler *pSuccessor) {
mpSuccessor = pSuccessor;
}
virtual void HandlerRequest(const int &nRequest) = 0;
};
class CConcreteHandler1 : public CHandler {//处理0-10之间的事物
public:
void HandlerRequest(const int &nRequest) {
if (nRequest >= 0 && nRequest < 10) {
cout << "CConcreteHandler1:" << nRequest << endl;
}
else if (mpSuccessor != NULL) {
mpSuccessor->HandlerRequest(nRequest);
}
}
};
class CConcreteHandler2 : public CHandler {//处理10以上的事物
public:
void HandlerRequest(const int &nRequest) {
if (nRequest >= 10) {
cout << "CConcreteHandler2:" << nRequest << endl;
}
else if (mpSuccessor != NULL) {
mpSuccessor->HandlerRequest(nRequest);
}
}
};
int main() {
CHandler *pH1 = new CConcreteHandler1();
CHandler *pH2 = new CConcreteHandler2();
pH1->SetSuccessor(pH2);
for (int index = 0; index <= 15; index++) {
pH1->HandlerRequest(index);
}
getchar();
return 0;
}
相关文章
- 设计模式-代理模式
- 设计模式复习-桥接模式
- 设计模式复习-状态模式
- 设计模式复习-外观模式
- 设计模式复习-原型模式
- 设计模式复习-代理模式
- 设计模式复习-装饰模式
- C++设计模式 ==> 工厂模式
- Java描述设计模式(07):适配器模式
- 设计模式(一)单例模式:创建模式 ASPNET CORE WEB 应用程序的启动 当项目中 没有STARTUP.CS 类如何设置启动 配置等等
- 【23种设计模式】备忘录模式(Memento Pattern) .Net Core实现
- 聊聊Java中的四种单例模式
- 一个ServiceLocator模式的实现
- javascript设计模式之观察者模式
- 设计模式(三)--适配器模式(Adapter Pattern)
- 《JavaScript设计模式》——第10章 水管弯弯——适配器模式 10.1引入jQuery
- 初学Java常用设计模式之——工厂模式
- 文本模式和HEX模式
- 构造函数模式
- 51驱动TTP229矩阵触摸按键模块,16键输入有效模式
- Java设计模式之行为型:解释器模式
- 设计模式-备忘录模式
- java设计模式案例详解:工厂模式
- 大话设计模式C++实现-第17章-适配器模式
- C#设计模式 之 抽象工厂模式
- MVC模式简单介绍
- 24行为型模式之解释模式
- 沈阳移动助建智慧沈阳“浑南模式”