当前位置: 首页 > news >正文

asp 网站 购物车广州海珠区天气预报

asp 网站 购物车,广州海珠区天气预报,莱州网站建设费用,扬州网站制作哪家好C责任链设计模式 什么是责任链设计模式 责任链设计模式是一种行为型设计模式,它允许多个处理请求的对象串联起来,形成一个处理请求的链。每个对象都有机会处理请求,如果该对象不能处理请求,则将请求传递给链中的下一个对象。 该…

C++责任链设计模式在这里插入图片描述

什么是责任链设计模式

责任链设计模式是一种行为型设计模式,它允许多个处理请求的对象串联起来,形成一个处理请求的链。每个对象都有机会处理请求,如果该对象不能处理请求,则将请求传递给链中的下一个对象。

该模式有什么优缺点

优点

  1. 解耦:责任链设计模式将处理请求的对象和解耦,使得不同的对象可以独立地变化和扩展,而不需要修改其他对象的代码。
  2. 灵活性:责任链设计模式可以轻松地添加、删除和修改处理请求的对象,从而可以灵活地适应不同的需求。
  3. 顺序独立:责任链设计模式不依赖于请求的顺序,每个对象都有机会处理请求,不论请求的顺序如何。

缺点

  1. 可能会产生多余的传递:由于每个对象都会处理请求,因此如果请求在链中传递得太多,可能会导致性能下降。
  2. 可能会出现重复处理:如果多个对象都能够处理请求,那么请求可能会在链中被重复处理,导致不必要的开销。

如何使用

下面是一个使用C++实现责任链设计模式的例子:

#include <iostream>  
#include <vector>  // 定义处理请求的接口  
interface Handler {  virtual bool handle(std::string& request) = 0;  
};  // 实现处理请求的具体类  
class ConcreteHandler : public Handler {  
public:  bool handle(std::string& request) override {  if (request.find("hello") != std::string::npos) {  std::cout << "Handling hello request" << std::endl;  return true;  }  return false;  }  
};  class ConcreteHandler2 : public Handler {  
public:  bool handle(std::string& request) override {  if (request.find("world") != std::string::npos) {  std::cout << "Handling world request" << std::endl;  return true;  }  return false;  }  
};  class ConcreteHandler3 : public Handler {  
public:  bool handle(std::string& request) override {  if (request.find("!") != std::string::npos) {  std::cout << "Handling exclamation mark request" << std::endl;  return true;  }  return false;  }  
};  // 使用责任链设计模式的例子  
int main() {  std::vector<Handler*> handlers = { new ConcreteHandler(), new ConcreteHandler2(), new ConcreteHandler3() };  std::string request = "hello world!";  for (auto handler : handlers) {  if (handler->handle(request)) {  break;  }  }  for (auto handler : handlers) {  delete handler;  }  return 0;  
}

在上面的例子中,我们定义了一个Handler接口和三个具体的处理请求的类ConcreteHandlerConcreteHandler2ConcreteHandler3。每个类都实现了handle方法,用于判断是否能够处理请求。在main函数中,我们创建了一个包含三个处理请求的对象的责任链,并使用链来处理字符串请求。每个对象都会处理请求,直到找到能够处理请求的对象为止。

http://www.yayakq.cn/news/886506/

相关文章:

  • 网站建设源代码交付wordpress sensei插件
  • 手机网站会员中心模板用云速成美站怎么做网站
  • 东莞专业网站建站设计有了域名和主机怎么做网站
  • 计算机应用教程 网站的建设与维护网站开发 php 书籍 推荐
  • wordpress+手机站dw做的网站如何上传云服务器
  • 网站热销榜怎么做百度网站收录入口
  • 响应式网站开发步骤北京海淀社保网站
  • 网站建设要求漂亮的设计类图片网站
  • 漂亮的网站维护页面外贸平台有哪些
  • 北苑网站建设公司注册深圳公司需要什么资料
  • 泉州网站排名5x社区发源于地从这里开始
  • 网站建设 部署与发布视频做社交网站的预算
  • 网站的总体方案网站建设在马来西亚
  • unity网站后台怎么做公司文化墙图片大全
  • 企业网站推广17即商通网站建设推广
  • 做公司网站要那些资料网站建设实验目的
  • 网站开发需要先学数据库么咋制作网站
  • 做单位网站教育类小程序开发
  • 建e网室内设计图搜索引擎优化seo包括
  • 个人简介网站怎么做org域名做商业网站
  • 国际快递网站建设自助提卡网站怎么做
  • linux网站建设网站关键词推广哪家好
  • 做网站合同长春火车站出入最新规定
  • 做网站用什么写公司网站形象
  • 用什么语言能写网站吗软件公司名称推荐
  • 运动猿app 网站开发广州网站建设市场
  • 网站关健词排名做问卷调查的网站有哪些
  • 湖南网站建设的公司排名WordPress限时账号
  • 奎屯建设局网站泉州营销型网站建设
  • 站群网站销售计划方案怎么写