c++职责链模式

本文介绍了职责链模式的理解和好处。在职责链中,客户端请求沿着对象链传递,直到找到合适的处理者。该模式降低了对象间的耦合性。文章还提供了一个C++实现简单职责链的例子,展示如何在main.cc中设定处理顺序。
摘要由CSDN通过智能技术生成

1.对职责链的理解

  客户端发出一个请求时,有不同的对象都可以处理这个类型的请求,但是我们不知道最终哪个对象会处理它,于是用一个链路的方式传递这个请求,直到有能处理处理这个具体的请求。

2.职责链的好处

 避免了不同对象都要显示调用处理这个请求的方法,避免耦合性。只需要一个对象显示调用,它处理不了时会传递给它指向的下个对象。

c++实现简单的职责链

#include <iostream>
class Handler {

protected:
   Handler* successor;
public:
  Handler () {}
  ~Handler () {}
  void SetSuccessor(Handler* next_handler) {
    this->successor = next_handler;
  }

  virtual void HandleRequest(int request) = 0;

};

class Handler_A: public Handler {
public:
  void HandleRequest(int request) {
    if (request < 10) {
      std::cout<< "A handle 0-9"<<std::endl;
    } else {
      successor->HandleRequest(request);
    }
  }

};
class Handler_B: public Handler {
public:
  void HandleRequest(int request) {
    if (request < 20) {
      std::cout<< "B handle 10-19"<<std::endl;
    } else {
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值