网易首页 > 网易号 > 正文 申请入驻

责任链模式拆解复杂业务规则:从无人敢改的函数到可维护的处理器链

0
分享至

每个系统发展到某个阶段,都会出现一个没人愿意碰的函数。

它一开始很小:一个简单的校验、一个if语句、再来一个。需求增长,条件越加越多,函数越来越长。有人加了一行注释:"改之前必须通读全文。"这个函数成了新人的"成人礼",入职培训时就会被特别警告。


这就是复杂业务规则堆在同一个地方、没有刻意设计去约束它的后果。

责任链模式(Chain of Responsibility)存在的意义,正是阻止这种情况发生。它不用一个什么都知道、什么都做的方法,而是构建一条由专注的处理器组成的链。每个处理器只掌握一条规则,检查请求是否满足自己的规则——满足就传给下一个,不满足就在此处终止。

没有处理器知道链条有多长,也不知道前后是谁。每个处理器只做自己的事,然后决定:停在这里,还是继续往下传。

责任链模式是什么?

这是一种行为型设计模式,让请求沿着一条处理器链传递。链上的每个处理器自行决定:处理请求并终止链条,或者把请求交给下一个处理器。

这个模式在生产系统中带来三个关键价值。

第一,它把请求的发送方和接收方解耦。发起交易校验的代码并不知道最终由哪个处理器处理或拦截,它只是启动链条。

第二,每个处理器只承担单一职责。每个处理器只负责一条业务规则,规则变化时只需修改一个类,其他代码不受影响。

第三,链条可配置。添加、移除或重排处理器,都不需要改动现有处理器代码。新的合规要求变成一个新处理器插进链条,而不是在现有方法里加一个新分支。

没有责任链的交易校验长什么样?

下面这段代码展示了未使用该模式时的交易处理逻辑:

void handleTransaction(Transaction transaction) {if (transaction.isFraud) {// 拦截交易return;if (!transaction.isKycVerified) {// 拒绝交易return;if (!transaction.isAccountActive) {// 拒绝交易return;if (transaction.amount < 50000) {// 初级审批return;if (transaction.amount <= 200000) {// 中级审批return;if (transaction.amount <= 1000000) {// 经理审批return;// 高管审批}

这段代码今天能跑。明天合规团队要加信用分检查,风控团队要加速率检查——问题就来了。

两个真实场景:交易审批流与用户注册校验

交易审批流是责任链的典型应用。欺诈检测、KYC验证、账户状态、金额分级审批,每个环节都是一个独立处理器。新增一个合规要求,就是往链上插一个新节点。

用户注册校验同样适用。邮箱格式、密码强度、手机号验证、邀请码检查——每个校验规则独立成处理器,链条按顺序执行。某个规则变更,只改对应处理器,不影响其他校验逻辑。

这两个场景放在一起看,共同点很明显:业务规则数量会增长、规则之间有先后依赖、每条规则独立变化。这正是责任链模式发挥价值的地方。

什么时候该用责任链模式?

当你的业务规则符合以下特征时,值得考虑这个模式:

  • 规则数量会持续增长,且新增规则频繁
  • 规则之间存在明确的先后顺序
  • 每条规则可以独立修改而不影响其他规则
  • 请求需要按顺序经过多个检查点

责任链模式的核心价值,是把"会无限膨胀的if-else"转化为"可插拔的处理器链"。每个处理器只关心自己的规则,链条的组装和维护变得清晰可控。

下次当你发现自己在一个函数里写了第五个if语句时,也许该想想:是不是该把这条链搭起来了。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
女子拍照拒搭讪遭围堵辱骂,公众为何如此愤慨?

女子拍照拒搭讪遭围堵辱骂,公众为何如此愤慨?

新民周刊
2026-08-21 20:55:38
笑不活了!这老爸操作真绝啊,防止高二女儿早恋,直接暑假带闺女跑长沙、武汉旅游,把小姑娘晒成“黑人”

笑不活了!这老爸操作真绝啊,防止高二女儿早恋,直接暑假带闺女跑长沙、武汉旅游,把小姑娘晒成“黑人”

番外行
2026-08-21 09:33:46
三孩非亲生案细节曝光!韦先生透露大尺度聊天记录:每次都干的不尽兴

三孩非亲生案细节曝光!韦先生透露大尺度聊天记录:每次都干的不尽兴

小徐讲八卦
2026-08-21 08:48:09
近海突然生成,直冲浙江,今晚或明天凌晨登陆!局地暴雨,个别大暴雨,风雨影响将进入最强时段

近海突然生成,直冲浙江,今晚或明天凌晨登陆!局地暴雨,个别大暴雨,风雨影响将进入最强时段

19楼
2026-08-22 15:14:41
明天处暑,有3个好消息,2个坏消息,3个多注意,早看早受益

明天处暑,有3个好消息,2个坏消息,3个多注意,早看早受益

小谈食刻美食
2026-08-22 08:30:31
无期不等于牢底坐穿!许家印最早2039年出狱?最晚几岁刑满离监?

无期不等于牢底坐穿!许家印最早2039年出狱?最晚几岁刑满离监?

李侽在北漂
2026-08-22 10:22:58
黄晓明陈冠希同框,旁边32岁陈梦却成全场最佳:不医美不打针,运动员的气血感赢麻了

黄晓明陈冠希同框,旁边32岁陈梦却成全场最佳:不医美不打针,运动员的气血感赢麻了

阿废冷眼观察所
2026-08-22 15:35:59
三千公里海疆直接“腰斩”?琉球独立或将成为日本的不可承受之重

三千公里海疆直接“腰斩”?琉球独立或将成为日本的不可承受之重

壹知眠羊
2026-08-21 07:09:48
歼-16出现就是去砸场子的! 中埃军事演习:真正目标是以色列与美国

歼-16出现就是去砸场子的! 中埃军事演习:真正目标是以色列与美国

影孖看世界
2026-08-22 16:41:39
辽宁一男子刑满释放后再次盗掘辽金古墓,跨省团伙12人落网

辽宁一男子刑满释放后再次盗掘辽金古墓,跨省团伙12人落网

澎湃新闻
2026-08-22 15:52:28
2小时来了上千人!武汉长江大桥下,都是晚上来的,“必须拍张照发朋友圈才圆满”

2小时来了上千人!武汉长江大桥下,都是晚上来的,“必须拍张照发朋友圈才圆满”

黄河新闻网吕梁
2026-08-22 15:26:10
越辩越明?湘大出示多个证据,哥哥用证据反驳,弟弟曝各科成绩

越辩越明?湘大出示多个证据,哥哥用证据反驳,弟弟曝各科成绩

次元君情感
2026-08-21 03:52:34
大反转!2女孩买票占座放零食后续:铁路局道歉!我们错怪求让座女子了!网友炸锅

大反转!2女孩买票占座放零食后续:铁路局道歉!我们错怪求让座女子了!网友炸锅

番外行
2026-08-22 14:02:15
菲律宾参议院宣布重大决定:取消!

菲律宾参议院宣布重大决定:取消!

共工之锚
2026-08-22 16:51:51
相比于许家印的满头白发,我们更应该看看他曾经的骄奢淫逸

相比于许家印的满头白发,我们更应该看看他曾经的骄奢淫逸

清书先生
2026-08-20 15:59:07
李在明,真是老狐狸之中的老狐狸,特朗普威胁韩国分摊 100 亿军费,李在明反呛特朗普:我完全同意“韩国的安全应该由韩国自身来负责”

李在明,真是老狐狸之中的老狐狸,特朗普威胁韩国分摊 100 亿军费,李在明反呛特朗普:我完全同意“韩国的安全应该由韩国自身来负责”

扶苏聊历史
2026-08-22 15:38:44
这5个行业,已经发不出工资了!真的很严重了

这5个行业,已经发不出工资了!真的很严重了

细说职场
2026-08-21 17:09:10
残酷!18岁魏祥鑫被下放预备队:练到脚出血 欧塞尔经理:身体疲劳

残酷!18岁魏祥鑫被下放预备队:练到脚出血 欧塞尔经理:身体疲劳

风过乡
2026-08-22 16:53:16
存款别贪多,70岁以后达到这三个数额,家庭已然幸福

存款别贪多,70岁以后达到这三个数额,家庭已然幸福

你在偷看谁
2026-08-21 21:51:40
日语正在“自杀”:日本人已经渐渐看不懂自己的语言了

日语正在“自杀”:日本人已经渐渐看不懂自己的语言了

爱下厨的阿椅
2026-08-20 08:09:02
2026-08-22 20:16:49
Ping值焦虑
Ping值焦虑
有态度网友ytd
241文章数 85关注度
往期回顾 全部

科技要闻

苹果裁员200人:Vision Pro砍游戏团队

头条要闻

美国人均负债11.76万美元 特朗普放话称考虑出兵干预

头条要闻

美国人均负债11.76万美元 特朗普放话称考虑出兵干预

体育要闻

枪手赚翻!4000万新援揭幕战8分钟策动2球

娱乐要闻

《空枪》预测票房缩水,手握王炸都没赢

财经要闻

蔡昉解读经济:扩大消费需求的政策思考

汽车要闻

2026成都车展的顶流选手 硬派方盒子享界 G9

态度原创

艺术
家居
教育
房产
军事航空

艺术要闻

草书界一部“空前绝后”的神帖!囊括11幅名家真迹,再现晋唐失传笔法

家居要闻

2026建博会(广州) 公装联探展交流活动

教育要闻

2026山东中考数学真题,选择题的第10题,考查二次函数,一起来学

房产要闻

两大热盘即将入市!三亚又一批安居房狠货要炸场了!

军事要闻

披露林肯号航母内幕的美国军报多人被炒

无障碍浏览 进入关怀版