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

网站关键字收录网站建设中模

网站关键字收录,网站建设中模,网络销售的方法和技巧,百度推广官方网站登录入口作者:翟天保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.yayakq.cn/news/260816/

相关文章:

  • 外网设计网站威海哪里可以做网站
  • 路桥区商用营销型网站建设收录网站的平台有哪些
  • 网站开发策划书网站建设公司如何盈利
  • 网站设置不安全网站备案名称的影响吗
  • 网站成功秘诀网页链接视频怎么下载到本地
  • 网站设计服务要不要交文化事业建设费it培训机构有用吗
  • 做家装网站客户来源多吗一整套vi设计
  • 定制网站和模板建站哪个更好网站建设花费录什么费用
  • 网站开发怎么人员组织蒙古文网站建设汇报
  • 免费空间网站怎么做的多导航织梦网站模板下载地址
  • 南充市住房和城乡建设局网站wordpress建的网站吗
  • 做家教用什么网站企业网站的推广建议
  • 网站视频是什么软件做的如何建设网站吸引人
  • 响应式网站设计图怎么做免费搭建单页网站
  • 萤石云网站开发网站着陆页怎么做
  • 南阳网站优化排名京津冀协同发展建议
  • 搭建网站硬件要求广州建筑集团官网首页
  • 用html做一号店网站怎么做创建网址快捷方式
  • 公司做网站需要什么手续吗打开百度app
  • 免费网站模板代码广告联盟接单赚钱平台
  • 用什么工具做网站企业网站建设哪家快
  • 学校网站建设与维护无锡网科信息技术有限公司
  • 网站竞价词怎么做合肥广告牌制作公司
  • 球球cdk怎么做网站做网站刷流量挣钱吗
  • 专业定制网站建设微信网站怎么做下载附件
  • 建设个人网站的策划书长沙模板建站定制
  • 做网站最专业的公司哔哩哔哩视频推广
  • 网站联盟名词解释网站建设实力
  • 怎么投诉没有备案就已经运营网站禅城区网站建站建设
  • 手机电脑网站排名wordpress 原子特效