设计模式-行为-职责链
来源:互联网 发布:淘宝双11海报素材 编辑:程序博客网 时间:2024/05/17 23:37
#pragma once#ifndef CHAINOFRESPONSIBILITY_H #define CHAINOFRESPONSIBILITY_H #include <stdio.h> // 抽象基类,定义一个处理请求的接口 class Handler { public: Handler(Handler *pSuccessor = NULL); virtual ~Handler(); // 纯虚函数,由派生类实现 virtual void HandleRequest() = 0; protected: Handler* m_pNextHandler; //if pNextHandler is null,handler it itself}; class ConcreateHandler1 : public Handler { public: ConcreateHandler1(Handler *pNextHandler = NULL) : Handler(pNextHandler){} virtual ~ConcreateHandler1(){} virtual void HandleRequest(); }; class ConcreateHandler2 : public Handler { public: ConcreateHandler2(Handler *pNextHandler = NULL) : Handler(pNextHandler){} virtual ~ConcreateHandler2(){} virtual void HandleRequest(); }; #endif
#include "StdAfx.h"#include "chainofresponsibility_impl.h"#include <iostream> Handler::Handler(Handler *pNextHandler /* = NULL*/) : m_pNextHandler(pNextHandler) { } Handler::~Handler() { delete m_pNextHandler; m_pNextHandler = NULL; } void ConcreateHandler1::HandleRequest() { if (m_pNextHandler) { std::cout <<"HandleRequest not by ConcreateHandler1,Transfer Next\n";m_pNextHandler->HandleRequest(); } else { std::cout << "HandleRequest by ConcreateHandler1\n"; } }void ConcreateHandler2::HandleRequest() { if (m_pNextHandler) { std::cout <<"HandleRequest not by ConcreateHandler2,Transfer Next\n";m_pNextHandler->HandleRequest(); } else { std::cout << "HandleRequest by ConcreateHandler2\n"; } }
// ChainOfResponsibility.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "chainofresponsibility_impl.h"#include <stdlib.h>//使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系. //将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. int _tmain(int argc, _TCHAR* argv[]){// p2::handlerequest-->p1::handlerequestHandler *p1 = new ConcreateHandler1(/*pNextHandler*/); Handler *p2 = new ConcreateHandler2(p1); p2->HandleRequest(); delete p2; system("pause");return 0;}
阅读全文
0 0
- 设计模式-行为-职责链
- 设计模式---行为类型---职责链
- 【JavaScript设计模式】行为型设计模式--职责链模式
- 设计模式学习-行为模式-职责链模式
- 设计模式 - 行为型模式 - 职责链模式
- 设计模式笔记(20)---职责链模式(行为型)
- 设计模式19:职责链模式【行为型】
- java设计模式(行为型)之职责链模式
- 设计模式:行为模式:职责链(chain of responsibility)
- 【设计模式】行为模式之Chain of Responsibility职责链
- 设计模式深入学习--Chain of Responsibility 职责链模式职责链模式(行为型模式)
- 行为模式-职责链模式
- 行为模式-职责链模式
- 行为型模式-职责链
- 职责链模式-对象行为模式
- 行为型模式之职责链模式
- [设计模式笔记]三. 行为型模式--15.Chain Of Responsibility(职责链模式)(一)
- [设计模式笔记]三. 行为型模式--15.Chain Of Responsibility(职责链模式)(二)
- 我的大学——经历了两年的大学生活才写出来的一篇文章 送给新生
- window10 下安装java开发环境步骤(jdk,maven,idea,MySQL,navicat,tomcat)
- 1036: 递归6(统计出栈
- 2017年10月07日普及组 数列
- namenode多个工作目录解决数据丢失问题
- 设计模式-行为-职责链
- 51nod 1294 修改数组(dp,逆向思维,最大上升子序列)
- OpenGL中矩阵堆栈为什么要进行多次的压栈和出栈操作?
- Android问题集锦:Eclipse 中文乱码之解决
- 排序算法—Java实现
- dom4j对XML的读写
- 1481. 偷懒的西西
- window.opener方法的使用 js跨域
- MAC上编写汇编程序