做互联网交易网站的条件建立网站需要注意什么

bicheng/2026/1/23 8:40:52/文章来源:
做互联网交易网站的条件,建立网站需要注意什么,网站怎么做二级域名,推广怎么做才可以赚钱《C新经典设计模式》之第19章 职责链模式 职责链模式.cpp 职责链模式.cpp #include iostream #include memory #include string using namespace std;// 请求传递给链中的若干对象#xff0c;哪个对象适合处理就自行处理 // 使多个对象都有机会处理请… 《C新经典设计模式》之第19章 职责链模式 职责链模式.cpp 职责链模式.cpp #include iostream #include memory #include string using namespace std;// 请求传递给链中的若干对象哪个对象适合处理就自行处理 // 使多个对象都有机会处理请求从而避免请求的发送者和接收者之间的耦合关系 // 将这些对象构成对象链并沿着链传递请求直到有对象处理为止// 3种角色 // Handler处理者定义处理请求的接口记录下一个处理者 // ConcreteHandler具体处理者实现针对具体请求的处理自身无法处理会将请求传递给后继者 // Client请求者/客户端创建责任链向责任链的具体处理者提交处理请求// 单纯的责令链模式请求得到处理后不向下传递 // 非单纯的责令链模式功能链请求得到处理后继续向下传递namespace ns1 {class SalaryHandler // 薪水处理类{void depManagerSP(const string sname, int salfigure) const // 部门经理审批加薪请求{cout sname ask for a raise: salfigure , manager agree! endl;}void CTOSP(const string sname, int salfigure) const // 技术总监审批加薪请求{cout sname ask for a raise: salfigure , Technical Director agree! endl;}void genManagerSP(const string sname, int salfigure) const // 总经理审批加薪请求{cout sname ask for a raise: salfigure , general manager agree! endl;}public: // 处理加薪请求void raiseRequest(const string sname, int salfigure) const // 参数1代表要加薪的员工名字参数2代表求要加薪多少{if (salfigure 1000) // 加薪要求不超过1000部门经理可以批准depManagerSP(sname, salfigure);else if (salfigure 5000) // 加薪要求在1000元之上但不超过5000技术总监才能批准CTOSP(sname, salfigure);else // 加薪要求超过5000元总经理才能批准genManagerSP(sname, salfigure);}}; }namespace ns2 {class RaiseRequest // 加薪请求类{string m_sname; // 请求加薪的人员名字int m_isalfigure; // 请求加薪的数字public:RaiseRequest(const string sname, int salfigure) : m_sname(sname), m_isalfigure(salfigure) {}const string getName() const { return m_sname; } // 获取请求加薪的人员名字int getSalFigure() const { return m_isalfigure; } // 获取请求加薪的数字};class ParSalApprover // 薪水审批者父类{shared_ptrParSalApprover m_nextChain; // 指向下一个审批者对象的多态指针指向自身类型每个都指向下一个就会构成一个职责链链表protected:void sendRequestToNextHandler(const RaiseRequest req) const // 找链中的下个对象并把请求投递给下个链中的对象{if (m_nextChain ! nullptr) // 找链中的下个对象m_nextChain-processRequest(req); // 把请求投递给链中的下个对象else // 没找到链中的下个对象程序流程执行这里似乎不应该cout req.getName() ask for a raise: req.getSalFigure() , nobody agree! endl;}public:ParSalApprover(const shared_ptrParSalApprover next nullptr) : m_nextChain(next) {}virtual ~ParSalApprover() {}void setNextChain(const shared_ptrParSalApprover next) { m_nextChain next; } // 设置指向的职责链中的下个审批者virtual void processRequest(const RaiseRequest req) const 0; // 处理加薪请求};class depManager_SA : public ParSalApprover // 部门经理子类{public:depManager_SA(const shared_ptrParSalApprover next nullptr) : ParSalApprover(next) {}void processRequest(const RaiseRequest req) const override{int salfigure req.getSalFigure();if (salfigure 1000) // 如果自己能处理则自己处理cout req.getName() ask for a raise: salfigure , manager agree! endl;else // 自己不能处理尝试找链中的下个对象来处理sendRequestToNextHandler(req);}};class CTO_SA : public ParSalApprover // 技术总监子类{public:CTO_SA(const shared_ptrParSalApprover next nullptr) : ParSalApprover(next) {}void processRequest(const RaiseRequest req) const override{int salfigure req.getSalFigure();if (salfigure 1000 salfigure 5000) // 如果自己能处理则自己处理cout req.getName() ask for a raise: salfigure , CTO_SA agree! endl;elsesendRequestToNextHandler(req); // 自己不能处理尝试找链中的下个对象来处理}};class genManager_SA : public ParSalApprover // 总经理子类{public:genManager_SA(const shared_ptrParSalApprover next nullptr) : ParSalApprover(next) {}void processRequest(const RaiseRequest req) const override{int salfigure req.getSalFigure();if (salfigure 5000) // 如果自己能处理则自己处理cout req.getName() ask for a raise: salfigure , genManager_SA agree! endl;elsesendRequestToNextHandler(req); // 自己不能处理尝试找链中的下个对象来处理}}; }namespace ns3 {class ParWordFilter // 敏感词过滤器父类{shared_ptrParWordFilter m_nextChain{nullptr};protected: // 找链中的下个对象并把请求投递给下个链中的对象string sendRequestToNextHandler(const string strWord) const{if (m_nextChain ! nullptr) // 找链中的下个对象return m_nextChain-processRequest(strWord); // 把请求投递给链中的下个对象return strWord;}public:virtual ~ParWordFilter() {}void setNextChain(const shared_ptrParWordFilter next) { m_nextChain next; } // 设置指向的职责链中的下个过滤器virtual string processRequest(const string strWord) const 0; // 处理敏感词过滤请求};class SexyWordFilter : public ParWordFilter // 性敏感词过滤器子类{public:string processRequest(const string strWord) const override{cout replace sex with XXX! endl;return sendRequestToNextHandler(strWord XXX);}};class DirtyWordFilter : public ParWordFilter // 脏话词过滤器子类{public:string processRequest(const string strWord) const override{cout replace obscenities with YYY! endl;return sendRequestToNextHandler(strWord YYY);}};class PoliticsWordFilter : public ParWordFilter // 政治敏感词过滤器子类{public:string processRequest(const string strWord) const override{cout replace politices with ZZZ! endl;return sendRequestToNextHandler(strWord ZZZ);}}; }namespace ns4 {class AbstractLogger{public:static int INFO;static int DEBUG;static int ERROR;public:virtual ~AbstractLogger() default;AbstractLogger(int m_level) : level(m_level) {}void setNextLogger(const shared_ptrAbstractLogger m_nextLogger) { nextLogger m_nextLogger; }void logMessage(int m_level, const string message){if (level m_level)write(message);if (nextLogger ! nullptr)nextLogger-logMessage(m_level, message);}protected:int level;shared_ptrAbstractLogger nextLogger;virtual void write(const string message) const 0;};int AbstractLogger::INFO 1;int AbstractLogger::DEBUG 2;int AbstractLogger::ERROR 3;class ConsoleLogger : public AbstractLogger{public:ConsoleLogger(int level) : AbstractLogger(level) {}protected:void write(const string message) const override{cout Standard Console::Logger: message endl;}};class ErrorLogger : public AbstractLogger{public:ErrorLogger(int level) : AbstractLogger(level) {}protected:void write(const string message) const override{cout ErrorLogger Console::Logger: message endl;}};class FileLogger : public AbstractLogger{public:FileLogger(int level) : AbstractLogger(level) {}protected:void write(const string message) const override{cout FileLogger Console::Logger: message endl;}};shared_ptrAbstractLogger getChainOfLoggers(){shared_ptrAbstractLogger errorLogger make_sharedErrorLogger(AbstractLogger::ERROR);shared_ptrAbstractLogger fileLogger make_sharedFileLogger(AbstractLogger::DEBUG);shared_ptrAbstractLogger consoleLogger make_sharedConsoleLogger(AbstractLogger::INFO);errorLogger-setNextLogger(fileLogger);fileLogger-setNextLogger(consoleLogger);return errorLogger;} }int main() { #if 0ns1::SalaryHandler sh;sh.raiseRequest(zs, 15000); // 张三要求加薪1.5万sh.raiseRequest(ls, 3500); // 李四要求加薪3千5sh.raiseRequest(we, 800); // 王二要求加薪8百 #endif#if 0using namespace ns2;//(1)创建出职责链中包含的各个对象部门经理、技术总监、总经理shared_ptrParSalApprover pzzlinkobj3(new genManager_SA());shared_ptrParSalApprover pzzlinkobj2(new CTO_SA(pzzlinkobj3));shared_ptrParSalApprover pzzlinkobj1(new depManager_SA(pzzlinkobj2));//(2)将这些对象串在一起构成职责链链表现在职责链中pzzlinkobj1排在最前面pzzlinkobj3排在最后面// pzzlinkobj1-setNextChain(pzzlinkobj2);// pzzlinkobj2-setNextChain(pzzlinkobj3);// pzzlinkobj3-setNextChain(nullptr); //可以不写此行因为ParSalApprover构造函数中设置了m_nextChain为nullptr//(3)创建几位员工关于加薪的请求对象RaiseRequest emp1Req(zs, 15000); // 张三要求加薪1.5万RaiseRequest emp2Req(ls, 3500); // 李四要求加薪3千5RaiseRequest emp3Req(we, 800); // 王二要求加薪8百// 看看每位员工的加薪请求由职责链中的哪个对象部门经理、技术总监、总经理来处理从职责链中排在最前面的接收者pzzlinkobj1开始pzzlinkobj1-processRequest(emp1Req);pzzlinkobj1-processRequest(emp2Req);pzzlinkobj1-processRequest(emp3Req); #endif#if 0using namespace ns3;//(1)创建出职责链中包含的各个对象性敏感词过滤器、脏话词过滤器、政治敏感词过滤器shared_ptrParWordFilter pwflinkobj1(new SexyWordFilter());shared_ptrParWordFilter pwflinkobj2(new DirtyWordFilter());shared_ptrParWordFilter pwflinkobj3(new PoliticsWordFilter());//(2)将这些对象串在一起构成职责链链表现在职责链中pwflinkobj1排在最前面pwflinkobj3排在最后面pwflinkobj1-setNextChain(pwflinkobj2);pwflinkobj2-setNextChain(pwflinkobj3);pwflinkobj3-setNextChain(nullptr);// 从职责链中排在最前面的接收者pwflinkobj1开始processRequest的参数代表的是聊天内容string strWordFilterResult pwflinkobj1-processRequest(Hello, here is an example of filtering sensitive words test);cout The result of filtering sensitive words is: strWordFilterResult endl; #endif#if 1using namespace ns4;shared_ptrAbstractLogger loggerChain getChainOfLoggers();loggerChain-logMessage(AbstractLogger::INFO, This is an information.);loggerChain-logMessage(AbstractLogger::DEBUG, This is a debug level information.);loggerChain-logMessage(AbstractLogger::ERROR, This is an error information.); #endifcout Over!\n;return 0; }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最便宜的网站建设WordPress图片方案

AI 使用大型语言模型(LLM)来理解和生成自然语言。LLM 可以从大量文本中学习并创建有关各种主题的文本,并可以完成比如编写代码、生成歌词、总结文章等任务。但有些 LLM 相关课程成本高昂且封闭,而现有的开放课程数量十分有限。这就…

成都创新互联科技有限公司长沙seo推广营销

一:背景 一直在用 WinDbg 调试用户态程序,并没有用它调试过 内核态,毕竟不是做驱动开发,也没有在分析 dump 中需要接触用内核态的需求,但未知的事情总觉得很酷,加上最近在看 《深入解析 Windows 操作系统》…

微信制作网站设计wordpress网站换域名

1 教学实训总体设计 1.1 建设背景 (一)政策推动与战略部署 近年来,物联网技术在全球范围内得到了广泛的关注和应用。作为信息技术的重要组成部分,物联网在推动经济转型升级、提升社会管理水平、改善民生福祉等方面发挥着重要作…

网站中的宣传册翻页动画怎么做在深圳注册公司流程及费用

目录 一、网络配置命令 1.ifconfig——IP地址 1.1ifconfig的基础用法 1.1.1ifconfig命令详解 1.2常用格式 1.3修改网卡名称 1.3.1临时修改 1.3.2永久修改 1.4临时修改网卡 1.4.1设置虚拟网卡 1.4.2延伸——ethtool 1.5永久修改网卡 1.6实验 —— 双网卡配置 1.…

青岛php网站建设网站怎样做关键词优化

参考资料:用python动手学统计学 1、t统计量 t统计量的计算公式为: 其中,为样本均值,μ为总体均值,为实际样本的无偏标准差,N为样本容量。 t统计量的公式与标准化公式类似。t统计量可以理解为对样本均值…

wordpress网站静态化在线查看网站源码

实验五:AAAI 会议论文聚类分析 ​ 本次实验以AAAI 2014会议论文数据为基础,要求实现或调用无监督聚类算法,了解聚类方法。 1 任务介绍 ​ 每年国际上召开的大大小小学术会议不计其数,发表了非常多的论文。在计算机领域的一些大…

如何查看vs中建设好的网站开通招聘网站如何做分录

2023年8月30日,EESA第二届中国国际储能展览会在苏州国际博览中心拉开帷幕,科士达以“零碳光储数能未来”为主题,亮相G3-20展台,多维度展现户用光储、工商业储能、大型储能等解决方案,彰显安全、高效、可靠的产品性能和…

一起做网站广州下载中心官方网站建设银行

1、匿名对象 匿名:没有名字 生活层面:匿名投票、匿名信... 程序层面: 有名对象和匿名对象 有名对象: 理解:有名字的对象 模板: 数据类型 对象名 new 数据类型(...); 匿名对象: 理…

关于网站建设的好处网站建设教程主页

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》作者 公众号:山峯草堂,非技术多篇文章,专注于天道酬勤的 Java 开发问题、中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 转载说明:务必注明来源(注明:…

天津平台网站建设推荐北京百度seo排名点击软件

1 命名规范 1.1 Go是一门区分大小写的语言。 命名规则涉及变量、常量、全局函数、结构、接口、方法等的命名。 Go语言从语法层面进行了以下限定:任何需要对外暴露的名字必须以大写字母开头,不需要对外暴露的则应该以小写字母开头。 当命名&#xff08…

淄博企业网站建设网页升级紧急通知区域

这是我去额尔古纳的公路上,隔着车窗拍摄的照片。三幅照片可以感觉时间的变化,从午后到黄昏,光和色彩逐渐朦胧凝重,像蒙古画家朝戈的油画。这样的景象在草原上随处可见。沙石路只有在草原的深处可以见到,坐在车里身体会…

.net开发网站的优点网站建设广告平台推广

Python2 与 Python3 print 不换行 分类 编程技术 本文主要介绍在 Python2 与 Python3 下 print 实现不换行的效果。 Python 3.x 在 Python 3.x 中,我们可以在 print() 函数中添加 end"" 参数,这样就可以实现不换行效果。 在 Python3 中&a…

游戏网站建设视频教程老网站做seo能不能重新注册

我最近读了一个非常聪明的技巧来完成你所要求的工作。简而言之,你只需要使用text-align:justify;在容器元素上实现这一点,结合一个额外的不可见块。这是因为内联块元素被视为文本内容的一部分,每个元素实际上是单个单词。使用对齐…

苏州建设公司网站建设奇迹网站架设视频

反转单链表 题目描述 题目分析 先来说迭代的思想: 上面next cur->next应该放在cur->next pre前面执行,这里笔误 再来说递归的思想: 题目代码 这个代码里面我加了我自己写的测试数据,自己可以去找对应的部分&#xff0c…

机场建设相关网站站长工具网站排名

前言 只要你的小程序超过一个页面那么可能会需要涉及到页面参数的传递,下面我总结了 4 种页面方法。 路径传递 通过在url后面拼接参数,参数与路径之间使用 ? 分隔,参数键与参数值用 相连,不同参数用 & 分隔;如…

上海市普陀区建设规划局网站长沙如何优化排名

目录 一、防火墙基本认识 1. 安全技术 2. 防火墙分类 3. 防火墙工具介绍 二、iptables 1. 概述 2. 五表五链 3. 语法 3.1 基本语法 3.2 语法总结 4. 管理选项 5. 通用匹配 6. 控制类型 7. iptables应用 7.1 新增防火墙规则 7.2 查看规则表 7.3 黑白名单 7.4 …

进入网站后台ftp空间后怎样上传wordpress建的网站吗

1 花盆 是高度比较低的盆,只有一个下2;上面分两个 1 2 盆边缘颜色深,上面靠近外面的颜色浅,正面颜色稍微深一点,画两条竖的浅色线,作为装饰 2 花盆中的沙石 沙子颜色深一点,中间有浅一点的线…

全球网站排名查询网做选择网站

GPIO控制-外部中断 文章目录 GPIO控制-外部中断1、CH32V307中断介绍2、GPIO外部中断相关API3、外部中断使用代码实现CH32V3x 系列内置可编程快速中断控制器(PFIC– Programmable Fast Interrupt Controller),最多支持255 个中断向量。当前系统管理了88 个外设中断通道和8 个…

网站开发适合女生不网络架构方案规划设计和实施

目录 前言: 1.HTTPS协议理论 1.1协议概念 1.2加密 2.两类加密 2.1对称加密 2.2非对称加密 3.引入“证书” 3.1证书概念 3.2数据证书内容 3.3数据签名 4.总结 前言: 了解完HTTP协议后,HTTPS协议是HTTP协议的升级加强版&#xff0c…

做一款网站万站霸屏

文章目录 【Oracle】如何给物化视图分区给物化视图进行分区的例 【声明】文章仅供学习交流,观点代表个人,与任何公司无关。 编辑|SQL和数据库技术(ID:SQLplusDB) 收集Oracle数据库内存相关的信息 【Oracle】ORA-32017和ORA-00384错误处理 【Oracle】设置…