`
kmplayer
  • 浏览: 509884 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

设计模式之职责链模式

阅读更多
1,职责链的本质:尝试多个解决方法,直到找到一个起作用的方法.
2,实例代码
#include <iostream>
#include <vector>
using namespace std;

enum Answer{ NO,YES };
class Response
{
public:
    virtual Answer canIHave()=0;
    virtual ~Response() {}
};

class AskMum : public Response
{
public:
    Answer canIHave()
    {
        cout<<"mum,can I have?"<<endl;
        return NO;
    }
};
class AskDad : public Response
{
public:
    Answer canIHave()
    {
        cout<<"dad,can I have?"<<endl;
        return NO;
    }
};
class AskUncle : public Response
{
public:
    Answer canIHave()
    {
        cout<<"uncle,can I have?"<<endl;
        return YES;
    }
};

class RunResponse : public Response
{
    vector<Response*> chain;
public:
    RunResponse()
    {
        chain.push_back(new AskMum);
        chain.push_back(new AskDad);
        chain.push_back(new AskUncle);
    }
    Answer canIHave()
    {
        vector<Response*>::iterator ite=chain.begin();
        while(ite!=chain.end())
        {
            if((*ite++)->canIHave()==YES)
                return YES;
        }
        cout<<"All NO."<<endl;
        return NO;
    }
    //记得释放堆内存
    ~ RunResponse()
    {
        vector<Response*>::iterator ite=chain.begin();
        while(ite!=chain.end())
        {
            delete *ite++;
        }
    }

};



int main()
{
    RunResponse chain;
    chain.canIHave();
    return 0;
}
分享到:
评论

相关推荐

    设计模式之职责链模式(ChainOfResponsibilityPattern)

    职责链模式(ChainOfResponsibilityPattern)是一种行为设计模式,主要目的是通过建立一个处理请求的对象链,使得请求可以在链上的各个对象间传递,直到被某个对象处理。这种模式可以有效地解耦请求发起者和处理者,...

    Python设计模式之职责链模式原理与用法实例分析

    本文实例讲述了Python设计模式之职责链模式原理与用法。分享给大家供大家参考,具体如下: 职责链模式(Chain Of Responsibility):使多个对象都有机会处理请求,从而避免发送者和接收者的耦合关系。将对象连成链并...

    设计模式:职责链模式

    职责链模式(Chain of Responsibility)是设计模式中的一种行为模式,它允许将请求沿着处理者对象的链式结构进行传递,直到某个对象决定处理这个请求。这种模式的主要优点在于可以解耦发送者和接收者,使得系统更加...

    php设计模式之职责链模式定义与用法经典示例

    本文实例讲述了php设计模式之职责链模式定义与用法。分享给大家供大家参考,具体如下: &lt;?php /** * @desc php设计模式之职责链模式(责任链模式) 定义:顾名思义,责任链模式为请求创建了一个接收者对象的链...

    设计模式 - 职责链模式(C++实例)

    职责链模式(Chain of Responsibility)是一种行为设计模式,它的核心思想是将一系列处理请求的对象组织成一条链,每个对象都包含对请求的处理或传递的责任。在C++中实现职责链模式,我们可以创建一个抽象处理器类,...

    Java 23种设计模式17职责链模式.pdf

    ### Java设计模式详解:职责链模式 #### 行为型模式概述 行为型设计模式着重于定义对象间的职责分配及算法的抽象化。不同于结构型模式关注类和对象的组合,行为型模式更注重对象之间的交互与职责划分,强调的是在...

    JavaScript设计模式之职责链模式应用示例

    本文实例讲述了JavaScript设计模式之职责链模式。分享给大家供大家参考,具体如下: 一、职责链的定义: 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这...

    深入理解JavaScript系列(38):设计模式之职责链模式详解

    主要介绍了深入理解JavaScript系列(38):设计模式之职责链模式详解,职责链模式(Chain of responsibility)是使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,需要的朋友可以参考下

    C++设计模式之职责链模式

    职责链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许将请求沿着处理者对象的链式结构进行传递,直到某个对象能够处理该请求。在C++中,职责链模式通常用于解耦发送者和接收者,使得系统更加...

    C++ 职责链 设计模式

    职责链模式的核心思想是定义一个处理请求的接口,每个处理者对象都实现了这个接口,并且持有对下一个处理者的引用。当请求到来时,它可以处理请求,或者将请求传递给下个处理者。这样,一个请求可以沿着处理者链流动...

    C++设计模式课件22_Chain Of Resposibility_职责链.pdf

    ### C++设计模式之职责链模式详解 #### 一、职责链模式简介 **职责链模式**(Chain of Responsibility Pattern)是一种行为设计模式,它使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系...

    设计模式职责链的个人所得税系统

    本项目"设计模式职责链的个人所得税系统"就是基于职责链设计模式,用于演示如何利用这种模式来实现一个个人所得税计算系统。职责链模式的核心思想是将请求的发送者和接收者解耦,通过将一系列处理对象链接在一起,...

    快速学习C# 设计模式之职责链模式

    职责链模式(Chain of Responsibility Pattern)是一种行为设计模式,用于在对象之间分发请求,允许将请求沿着对象链传递,直到被某个对象处理。这种模式通过避免请求发送者与接收者之间的耦合,使得系统更具有灵活...

    php设计模式之职责链模式实例分析【星际争霸游戏案例】

    【职责链模式】是一种行为设计模式,它允许在对象之间传递请求,直到被某个对象处理。在PHP中,职责链模式常用于解耦发送请求的对象和处理请求的对象,使得一个对象不必知道是哪个对象处理其请求,只需知道该请求会...

    设计模式-职责链模式(讲解及其实现代码)

    职责链模式是一种行为设计模式,它允许我们定义一系列对象,这些对象可以按顺序接收请求,每个对象都可以处理请求或将其传递给链中的下一个对象。这种模式使得我们可以将请求的发送者与接收者解耦,同时增加了系统...

Global site tag (gtag.js) - Google Analytics