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)是一种行为设计模式,主要目的是通过建立一个处理请求的对象链,使得请求可以在链上的各个对象间传递,直到被某个对象处理。这种模式可以有效地解耦请求发起者和处理者,...
本文实例讲述了Python设计模式之职责链模式原理与用法。分享给大家供大家参考,具体如下: 职责链模式(Chain Of Responsibility):使多个对象都有机会处理请求,从而避免发送者和接收者的耦合关系。将对象连成链并...
职责链模式(Chain of Responsibility)是设计模式中的一种行为模式,它允许将请求沿着处理者对象的链式结构进行传递,直到某个对象决定处理这个请求。这种模式的主要优点在于可以解耦发送者和接收者,使得系统更加...
本文实例讲述了php设计模式之职责链模式定义与用法。分享给大家供大家参考,具体如下: <?php /** * @desc php设计模式之职责链模式(责任链模式) 定义:顾名思义,责任链模式为请求创建了一个接收者对象的链...
职责链模式(Chain of Responsibility)是一种行为设计模式,它的核心思想是将一系列处理请求的对象组织成一条链,每个对象都包含对请求的处理或传递的责任。在C++中实现职责链模式,我们可以创建一个抽象处理器类,...
### Java设计模式详解:职责链模式 #### 行为型模式概述 行为型设计模式着重于定义对象间的职责分配及算法的抽象化。不同于结构型模式关注类和对象的组合,行为型模式更注重对象之间的交互与职责划分,强调的是在...
本文实例讲述了JavaScript设计模式之职责链模式。分享给大家供大家参考,具体如下: 一、职责链的定义: 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这...
主要介绍了深入理解JavaScript系列(38):设计模式之职责链模式详解,职责链模式(Chain of responsibility)是使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,需要的朋友可以参考下
职责链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许将请求沿着处理者对象的链式结构进行传递,直到某个对象能够处理该请求。在C++中,职责链模式通常用于解耦发送者和接收者,使得系统更加...
职责链模式的核心思想是定义一个处理请求的接口,每个处理者对象都实现了这个接口,并且持有对下一个处理者的引用。当请求到来时,它可以处理请求,或者将请求传递给下个处理者。这样,一个请求可以沿着处理者链流动...
### C++设计模式之职责链模式详解 #### 一、职责链模式简介 **职责链模式**(Chain of Responsibility Pattern)是一种行为设计模式,它使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系...
本项目"设计模式职责链的个人所得税系统"就是基于职责链设计模式,用于演示如何利用这种模式来实现一个个人所得税计算系统。职责链模式的核心思想是将请求的发送者和接收者解耦,通过将一系列处理对象链接在一起,...
职责链模式(Chain of Responsibility Pattern)是一种行为设计模式,用于在对象之间分发请求,允许将请求沿着对象链传递,直到被某个对象处理。这种模式通过避免请求发送者与接收者之间的耦合,使得系统更具有灵活...
【职责链模式】是一种行为设计模式,它允许在对象之间传递请求,直到被某个对象处理。在PHP中,职责链模式常用于解耦发送请求的对象和处理请求的对象,使得一个对象不必知道是哪个对象处理其请求,只需知道该请求会...
职责链模式是一种行为设计模式,它允许我们定义一系列对象,这些对象可以按顺序接收请求,每个对象都可以处理请求或将其传递给链中的下一个对象。这种模式使得我们可以将请求的发送者与接收者解耦,同时增加了系统...