责任链模式通过将请求发送者与接收者解耦,使多个对象有机会处理请求,形成一条由抽象基类Handler定义统一接口、具体处理器继承实现的处理链;示例中组长、经理、总监按金额逐级审批,支持动态扩展与健壮性优化。
责任链模式(Chain of Responsibility)在 C++ 中通过将请求的发送者与接收者解耦,让多个对象都有机会处理该请求,形成一条处理对象的链。每个处理者持有一个指向下一个处理者的指针(或引用),若自身不能处理,就将请求传递给下一个节点。
典型实现包含一个抽象处理者基类(Handler),定义统一的处理接口和对后继的引用;若干具体处理者(ConcreteHandler)继承并实现自己的处理逻辑。
模拟审批流程:不同金额由不同角色审批(组长 ≤ 1000,经理 ≤ 5000,总监无上限):
class Handler {
protected:
Handler* next_ = nullptr;
public:
void setNext(Handler* next) { next_ = next; }
virtual bool handle(int amount) = 0;
virtual ~Handler() = default;
};
class TeamLeader : public Handler {
public:
bool handle(int amount) override {
if (amount <= 1000) {
std::cout << "组长批准:" << amount << "元\n";
return true;
}
if (next) return next->handle(amount);
return false;
}
};
class Manager : public Handler {
public:
bool handle(int amount) override {
if (amount <= 5000) {
std::cout << "经理批准:" << amount << "元\n";
return true;
}
if (next) return next->handle(amount);
return false;
}
};
class Director : public Handler {
public:
bool handle(int amount) override {
std::cout << "总监批准:" << amount << "元(无额度限制)\n";
return true;
}
};
// 使用:
int main() {
TeamLeader tl;
Manager mg;
Director dr;
tl.setNext(&mg);
mg.setNext(&dr);
tl.handle(500); // 组长批准
tl.handle(3000); // 经理批准
tl.handle(10000); // 总监批准
}
真实项目中可进一步优化健壮性和扩展性:
ler() 方法构建链,而非手动 setNext适合多级审核、事件分发、过滤器链(如 HTTP 中间件)、GUI 事件冒泡等场景。
# 处理器
# 编码
# 事件冒泡
# ai
# c++
# 中间件
# bool
# 指针
# 继承
# 虚函数
# 纯虚函数
# 接口
# 对象
# 事件
# http
# 多个
# 自己的
# 中统
# 都有
# 设为
# 有机会
# 健壮性
# 跳转
# 就将
# 而非
相关文章:
高端建站如何打造兼具美学与转化的品牌官网?
建站之星在线版空间:自助建站+智能模板一键生成方案
深圳网站制作平台,深圳市做网站好的公司有哪些?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
制作旅游网站html,怎样注册旅游网站?
如何快速生成凡客建站的专业级图册?
如何快速上传自定义模板至建站之星?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
如何通过宝塔面板实现本地网站访问?
微信小程序 五星评分(包括半颗星评分)实例代码
电商网站制作公司有哪些,1688网是什么意思?
个人摄影网站制作流程,摄影爱好者都去什么网站?
建站三合一如何选?哪家性价比更高?
网站制作报价单模板图片,小松挖机官方网站报价?
如何在Ubuntu系统下快速搭建WordPress个人网站?
专业商城网站制作公司有哪些,pi商城官网是哪个?
如何在服务器上三步完成建站并提升流量?
如何通过服务器快速搭建网站?完整步骤解析
长沙做网站要多少钱,长沙国安网络怎么样?
如何快速完成中国万网建站详细流程?
javascript基本数据类型及类型检测常用方法小结
建站主机系统SEO优化与智能配置核心关键词操作指南
盐城做公司网站,江苏电子版退休证办理流程?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
建站之星价格显示格式升级,你的预算足够吗?
如何在IIS7上新建站点并设置安全权限?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
,如何利用word制作宣传手册?
如何在阿里云购买域名并搭建网站?
如何挑选最适合建站的高性能VPS主机?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
西安大型网站制作公司,西安招聘网站最好的是哪个?
香港服务器租用每月最低只需15元?
高防服务器如何保障网站安全无虞?
如何通过智能用户系统一键生成高效建站方案?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
太原网站制作公司有哪些,网约车营运证查询官网?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
制作网站的软件免费下载,免费制作app哪个平台好?
网站制作软件有哪些,制图软件有哪些?
如何在VPS电脑上快速搭建网站?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
企业微网站怎么做,公司网站和公众号有什么区别?
香港服务器选型指南:免备案配置与高效建站方案解析
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
如何通过IIS搭建网站并配置访问权限?
*请认真填写需求信息,我们会在24小时内与您取得联系。