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

河南省工程建设监理协会网站aso优化教程

河南省工程建设监理协会网站,aso优化教程,青岛建站模板制作,手机网站用什么软件做作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 一、责任链模式是什么? 责任链模式是一种行为型的软件设计模式,对象内存在对下家的引用,层层连…

作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

一、责任链模式是什么?

       责任链模式是一种行为型的软件设计模式,对象内存在对下家的引用,层层连接形成了一条责任链,请求的信息在链上传递直到某个对象决定处理该信息。

       责任链模式的优点:

  1. 请求者和接收者松耦合。请求者只需要发送请求,不关心由谁处理怎么处理;接收者只需要处理自己该处理的,剩下的交给责任链上的其他职责处理。
  2. 比较灵活。责任链上各个职责对象,可以灵活排序或组合,以应对不同场景。

       责任链模式的缺点:

  1. 性能易受影响。当责任链过长时,对请求的处理效率不够高。
  2. 不一定确保请求完整处理。每个职责只对自身部分负责,有可能请求走完整个责任链,也没有完全处理。

二、责任链模式

2.1 结构图

       客户端即Main主函数,操作者中有自己的下家,下家也是操作者。

2.2 代码示例

       场景描述:申请批假。

//Handler.h
/****************************************************/
#pragma once
#include <iostream>using namespace std;// 抽象操作者-职位
class Job 
{
public:// 批准假期virtual void approveLeave(int time) = 0;// 设置领导void setLeader(Job* handler) {m_leader = handler;}protected:Job* m_leader = nullptr;
};// 具体操作者-主管
class Manager : public Job 
{
public:// 批准假期virtual void approveLeave(int time) {if (time <= 3) {cout << "主管正在处理批假申请。" << endl;}else if (m_leader != nullptr) {m_leader->approveLeave(time);}else {cout << "未有合适领导批准该时长的假期申请。" << endl;}}};// 具体操作者-总监
class Director : public Job 
{
public:// 批准假期virtual void approveLeave(int time) {if (time <= 7) {cout << "总监正在处理批假申请。" << endl;}else if (m_leader != nullptr) {m_leader->approveLeave(time);}else {cout << "未有合适领导批准该时长的假期申请。" << endl;}}};
//main.cpp
/****************************************************/
#include <iostream>
#include <string>
#include "Handler.h"using namespace std;int main() 
{Job* job1 = new Manager();Job* job2 = new Director();// 设置领导job1->setLeader(job2);// 收到了三份批假申请,分别3、7、10天job1->approveLeave(3);job1->approveLeave(7);job1->approveLeave(10);delete job1;delete job2;job1 = nullptr;job2 = nullptr;return 0;
}

       程序结果如下。

       job中设置的领导其实就是它的下家,当它无法对当前请求进行处理时,交给下家也就是领导来处理。3天假期主管就可以批准了,7天需要由总监批准,10天则需要更大的领导批准,因为暂时没设置能处理7天以上批假的领导,所以对该请求需要做一个未处理成功的说明。

三、总结

       我尽可能用较通俗的话语和直观的代码例程,来表述我对责任链模式的理解,或许有考虑不周到的地方,如果你有不同看法欢迎评论区交流!希望我举的例子能帮助你更好地理解责任链模式。

       如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!

http://www.zhongyajixie.com/news/56908.html

相关文章:

  • 西安市建设厅网站专门做推广的公司
  • seopeixunwang宁波seo整站优化
  • 网站信息备案变更 哪里做营销手段
  • 网站如何换空间网站seo诊断分析
  • 平江区建设局网站宁波网站推广优化
  • python不用框架做网站制作一个网站的全过程
  • 基于网站开发的app优化关键词的方法包括
  • 免费网站制作效果2022今天刚刚发生地震了
  • dedecms手机网站更新seo自学网免费
  • 做网站的人找不到了株洲seo排名
  • 做充币提现的网站搜索引擎营销的分类
  • html完整网页实例滨州网站seo
  • 开发一个定制的网站百度在线搜索
  • 织梦网站名称谷歌推广新手教程
  • 建一个类似亨物说网站建设费用电脑清理优化大师
  • 邢台seo排名seo培训班
  • 怎么把做的网站传软件开发网站
  • 如何做网站卖画seo应用领域有哪些
  • 南京专业网站设计哪个品牌微信seo排名优化软件
  • 网站上的动态图怎么做长沙关键词优化平台
  • tq网站漂浮代码google下载安装
  • 建立香港网站空间网站步骤百度热搜广告位
  • 数据库网站制作如何做网站网页
  • 哪些网站可以做seo广州番禺发布网
  • 网页设计模板的结构seo优化网站网页教学
  • 北京市怀柔区建设委员会网站淘宝关键词优化技巧教程
  • iis7 发布asp网站404十大接单平台
  • 机器人软件开发和网站开发网络营销和传统营销的区别
  • 电商网站开发需要掌握哪些知识技能杭州百度整站优化服务
  • app网站如何做推广可以推广的软件有哪些