码迷,mamicode.com
首页 > 编程语言 > 详细

职责链模式之C++实现

时间:2014-06-26 16:08:31      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   ext   color   


#include "stdafx.h"
#include <iostream>
using namespace std;

class Programmer
{
protected:
    Programmer *next;
public:
    void SetNext(Programmer *programmer)
    {
        next = programmer;
    }
    virtual void ProcessErrorCode(int error) = 0;
};

class ProgrammerA : public Programmer
{
public:
    void ProcessErrorCode(int error)
    {
        if (error >= 0 && error < 10)
        {
            cout << "Error(" << error << "): 错误出现在ProgrammerA的代码" << endl;
        }
        else
        {
            next->ProcessErrorCode(error);
        }
    }
};

class ProgrammerB : public Programmer
{
public:
    void ProcessErrorCode(int error)
    {
        if (error >= 10 && error < 20)
        {
            cout << "Error(" << error << "): 错误出现在ProgrammerB的代码" << endl;
        }
        else
        {
            next->ProcessErrorCode(error);
        }
    }
};

class ProgrammerC : public Programmer
{
public:
    void ProcessErrorCode(int error)
    {
        if (error >= 20 && error < 30)
        {
            cout << "Error(" << error << "): 错误出现在ProgrammerC的代码" << endl;
        }
        else
        {
            cout << "Error(" << error << "): 异常:未知错误码" << endl;
        }
    }
};
int main(void)
{
    Programmer *pProgrammerA = new ProgrammerA;
    Programmer *pProgrammerB = new ProgrammerB;
    Programmer *pProgrammerC = new ProgrammerC;

    pProgrammerA->SetNext(pProgrammerB);
    pProgrammerB->SetNext(pProgrammerC);

    int izError[5] = {56182345};

    cout << "======== 根据错误码定位bug出现的代码段 ========" << endl;
    for (int i = 0; i < 5; i++)
    {
        pProgrammerA->ProcessErrorCode(izError[i]);
    }
    return 0;

} 

职责链模式之C++实现,布布扣,bubuko.com

职责链模式之C++实现

标签:style   class   blog   code   ext   color   

原文地址:http://www.cnblogs.com/jingmoxukong/p/3808957.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!