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

网站开发要学哪些知识seo基础

网站开发要学哪些知识,seo基础,卧龙区网站建设哪家好,网站搜索排优化怎么做一. 概述 职责链模式: 使多个对象都有机会处理请求。从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 二. 举个样例 员工要求加薪 公司的管理者一共同拥有三级&#x…

一. 概述

职责链模式:

使多个对象都有机会处理请求。从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

二. 举个样例

员工要求加薪

公司的管理者一共同拥有三级:总经理、总监、经理,假设一个员工要求加薪,应该向主管的经理申请。假设加薪的数量在经理的职权内。那么经理能够直接批准,否则将申请上交给总监。总监的处理方式也一样,总经理能够处理全部请求。这就是典型的职责链模式,请求的处理形成了一条链,直到有一个对象处理请求。


结构图例如以下:

如果:

经理能够处理薪水的范围在:0~500
总监能够处理薪水的范围在:500~1000
总经理能够处理薪水的范围在:1000~2000

则代码例如以下:

[cpp] view plaincopy
  1. //  
  2. //抽象处理类  
  3. class Handle  
  4. {  
  5. public:  
  6.     virtual ~Handle()  
  7.     {  
  8.         delete _succ;  
  9.     }  
  10.   
  11.     virtual void HandleRequest(int request) = 0;  
  12.       
  13.     //设置其上级  
  14.     void SetSuccessor(Handle* succ)  
  15.     {  
  16.         _succ = succ;  
  17.     }  
  18.   
  19.     Handle* GetSuccessor()  
  20.     {  
  21.         return _succ;  
  22.     }  
  23.   
  24. protected:  
  25.     Handle()  
  26.     {  
  27.         _succ = NULL;  
  28.     }  
  29.   
  30. private:  
  31.     Handle* _succ;  
  32. };  
  33.   
  34. //详细处理类 A  
  35. class ConcreteHandleA: public Handle  
  36. {  
  37. public:  
  38.     void HandleRequest(int request)  
  39.     {  
  40.         if (request >= 0 && request < 500)  
  41.         {  
  42.             cout << "ConcreteHandleA deal with: " << request <<endl;  
  43.         }  
  44.         else if (this->GetSuccessor() != NULL)  
  45.         {  
  46.             this->GetSuccessor()->HandleRequest(request);  
  47.         }  
  48.         else  
  49.         {  
  50.             cout << "Can't deal with " << request << endl;  
  51.         }  
  52.     }  
  53. };  
  54.   
  55. //详细处理类 B  
  56. class ConcreteHandleB: public Handle  
  57. {  
  58. public:  
  59.     void HandleRequest(int request)  
  60.     {  
  61.         if (request >= 500 && request < 1000)  
  62.         {  
  63.             cout << "ConcreteHandleB deal with: " << request <<endl;  
  64.         }  
  65.         else if (this->GetSuccessor() != NULL)  
  66.         {  
  67.             this->GetSuccessor()->HandleRequest(request);  
  68.         }  
  69.         else  
  70.         {  
  71.             cout << "Can't deal with " << request << endl;  
  72.         }  
  73.     }  
  74. };  
  75.   
  76. //详细处理类 C  
  77. class ConcreteHandleC: public Handle  
  78. {  
  79. public:  
  80.     void HandleRequest(int request)  
  81.     {  
  82.         if (request >= 1000 && request < 2000)  
  83.         {  
  84.             cout << "ConcreteHandleC deal with: " << request <<endl;  
  85.         }  
  86.         else if (this->GetSuccessor() != NULL)  
  87.         {  
  88.             this->GetSuccessor()->HandleRequest(request);  
  89.         }  
  90.         else  
  91.         {  
  92.             cout << "Can't deal with " << request << endl;  
  93.         }  
  94.     }  
  95. };  
  96.   
  97. //  
  98. //測试   
  99. int main()    
  100. {  
  101.     Handle* h1 = new ConcreteHandleA();  
  102.     Handle* h2 = new ConcreteHandleB();  
  103.     Handle* h3 = new ConcreteHandleC();  
  104.   
  105.     //设置其上级  
  106.     h1->SetSuccessor(h2);  
  107.     h2->SetSuccessor(h3);  
  108.   
  109.     h1->HandleRequest(300);  
  110.     h1->HandleRequest(600);  
  111.     h1->HandleRequest(1500);  
  112.     h1->HandleRequest(3000);  
  113.   
  114.     delete h1;  
  115.     delete h2;  
  116.     delete h3;  
  117.   
  118.     return 0;   
  119. }  

三. 说明

1. 职责链的特点是:当客户提交一个请求时。请求是沿链传递直至有一个ConcreteHandler对象负责处理它。

2. 职责链的优点是:请求者不用管哪个对象来处理,反正该请求会被处理。

它仅仅需保持一个后继者就可以。

3. 要注意的是:一个请求到链的最后可能也没有处理。所以一定要配置得当。

http://www.lbrq.cn/news/2619703.html

相关文章:

  • 临高网站建设企业网址怎么注册
  • 做网站贵不高清网站推广免费下载
  • 无锡网页设计培训公司百度网站排名优化价格
  • seo做网站赚钱运用搜索引擎营销的案例
  • 网站建设费用计入哪个科目百度搜索关键词排行榜
  • 推广小程序拿佣金微信小程序排名关键词优化
  • 苏州手工活外发加工网厦门百度快速优化排名
  • 共享wifi小程序搭建公众号seo排名软件
  • 公司网站维护方案网站换了域名怎么查
  • 广州行业网站建设推推蛙网站诊断
  • 做网站的经历感想今日大新闻
  • 举例行业门户网站网页分析报告案例
  • 广州住房建设部网站俄罗斯引擎搜索
  • 做网站用属于前端网站创建
  • 南通高端网站建设公司百度站长平台官网登录入口
  • PHP动态网站开发实训总结我想做电商怎么加入
  • 企业网站的新闻资讯版块有哪些宣城网站seo
  • 广州市专业做网站谷歌搜索引擎下载安装
  • wordpress批量删除评论灰色关键词排名优化
  • 智联招聘网最新招聘官网下载商丘seo排名
  • app 移动网站建设专业网站快速
  • 企业如何通过地方网站宣传网站推特是谁的公司
  • 郑州网站制作电话seo指搜索引擎
  • 网站备案号申请流程seo顾问培训
  • 网友要求你帮助他在某网站做测试搜索引擎seo关键词优化
  • 装饰设计网站建设跨境电商seo什么意思
  • 物业网站模板下载网易最新消息新闻
  • 日ip5000的网站怎么做seo手机优化软件哪个好用
  • 江苏网站建设哪家专业百度人工客服在线咨询电话
  • 自己做外贸网站能接到单吗新泰网站seo
  • Python生产环境部署指南:专业级应用启动方案
  • SkyWalking-1--SkyWalking是什么?
  • Agent安全机制:权限控制与风险防范
  • 力扣148:排序链表
  • 永磁同步电机的矢量控制
  • Unity开发者快速认识Unreal 的C++(四)Pawn和Actor