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

成都网站建设著名公司网址大全123上网导航

成都网站建设著名公司,网址大全123上网导航,wordpress添加页脚QQ图标,怎样做可以互动留言的网站动机#xff08;Motivation#xff09; 在软件构建过程中#xff0c;一个请求可能被多个对象处理#xff0c;但是每个请求在运行时只能有个接受者#xff0c;如果显示指定#xff0c;将必不可少地带来请求者与接受者的紧耦合。 如何使请求的发送者不需要指定具体的接受…动机Motivation 在软件构建过程中一个请求可能被多个对象处理但是每个请求在运行时只能有个接受者如果显示指定将必不可少地带来请求者与接受者的紧耦合。 如何使请求的发送者不需要指定具体的接受者让请求的接受者自己在运行是决定来处理请求从而两者解耦。 模式定义 使多个对象都有机会处理请求从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链并沿着这条链传递请求直到有一个请求处理他为止。 #include iostream #include stringusing namespace std;enum class RequestType {REQ_HANDLER1,REQ_HANDLER2,REQ_HANDLER3, };class Request {string description;RequestType reqType; public:Request(const string desc, RequestType type) : description(desc), reqType(type) {}RequestType getReqType() const { return reqType; }const string getDescription() const { return description; } };class ChainHandler {ChainHandler* nextChain;void sendRequestToNextHandler(const Request req) {if (nullptr ! nextChain) {nextChain-handle(req);}} protected:virtual bool canHandleRequest(const Request req) 0;virtual void processRequest(const Request req) 0; public:ChainHandler() { nextChain nullptr; }void setNextChain(ChainHandler* next) { nextChain next; }void handle(const Request req) {if (canHandleRequest(req)) {processRequest(req);}else{sendRequestToNextHandler(req);}} };class Handler1 : public ChainHandler { protected:virtual bool canHandleRequest(const Request req) override {return req.getReqType() RequestType::REQ_HANDLER1;}virtual void processRequest(const Request req) override {cout Handler1 is handle request: req.getDescription() endl;} };class Handler2 : public ChainHandler { protected:virtual bool canHandleRequest(const Request req) override {return req.getReqType() RequestType::REQ_HANDLER2;}virtual void processRequest(const Request req) override {cout Handler2 is handle request: req.getDescription() endl;} };class Handler3 : public ChainHandler { protected:virtual bool canHandleRequest(const Request req) override {return req.getReqType() RequestType::REQ_HANDLER3;}virtual void processRequest(const Request req) override {cout Handler3 is handle request: req.getDescription() endl;} };int main() {Handler1 h1;Handler1 h2;Handler1 h3;h1.setNextChain(h2);h2.setNextChain(h3);Request req(process task ..., RequestType::REQ_HANDLER3);h1.handle(req);return 0; }要点总结 Chain of Responsibility模式的应用场合在于“一个请求可能有多个接受者但是最后真正的接受者只有一个“这时候请求发送者与接受者的耦合有可能出现”变化脆弱“的症状指责链的目的就是将两者解耦从而更好地应对变化。 应用了Chain of Responsibility模式后对象的职责分派将更具灵活性。我们可以在运行时动态增加/修改请求的处理职责。 如果请求传递到职责链的末尾乃得不到处理应该有一个合理的缺省机制。这也使每一个接受对象的职责而不是发出请求的对象的职责。
http://www.zqtcl.cn/news/948010/

相关文章:

  • 深圳网站制作公司报价单宝塔做两个网站6
  • 百度站长工具怎么查排名贵港网站制作
  • 运城个人网站建设学校网站建设目的
  • 住房城乡建设部门门户网站购物网站排名大全
  • 手机网站平台江门网站建设模板
  • 做本地网站需要什么资质百度多长时间收录网站
  • 网站建设公司使用图片侵权使用者有无责任夸克免费空间
  • 网站建设制作鸿运通做网站能用python吗
  • 站长源码之家Wordpress 新建标签
  • 太原网站建设详细策划如何建设网站简答题
  • 乡村生态旅游网站建设方案如何做网站的导航栏
  • wordpress百度百科网站开发 seo
  • 网站主机名wordpress主题修改底部版权
  • 网站官网怎么做龙岩iot开发福建小程序建设
  • 哪个学校设有网站开发专业北京有哪些网站公司
  • 做网站需要的带宽上行还是下行湖南竞网科技有限公司
  • 帝国cms企业门户网站仿站视频教程 网盘互联网金融p2p网站建设
  • 个人网站备案涉及支付宝做二手的网站都有哪些
  • 如何给网站做宣传导航栏网页怎么制作
  • 返利网站建设高校精神文明建设网站
  • 河北百度推广seoseo全网优化指南
  • 网站建设网页开发一个类引用另一个类的方法
  • 第四章第二节网站建设的教学设计云南网站建设一度科技公司
  • php 搭建手机网站建e网app下载
  • 河北手机版建站系统价格微信怎么开店铺小程序
  • 中国建设教育网官网是什么网站潮州seo建站
  • 如何做个购物网站学校网站设计的目的
  • 建设部网站158号文件1688官网app
  • 临沂科技网站建设在线网页截图工具
  • 聊城网站推广软件简单网页制作训练