我终于搞懂了什么叫松耦合:先把它弄坏一次
来源:dev.to — 2026-10-17
📋 概述
又一个「终于懂了」系列。作者说松耦合的定义谁都背得出——组件之间关系可断,一处改动对别处的影响最小——但几乎没人给你一个能真切感受到差别的最小例子,定义从来不解决任何人的困惑。于是他反着来:先用最诚实也最糟的方式写一个「注册后发欢迎邮件」的接口,直接在业务代码里 new 一个 Resend 客户端,把这个东西跑起来、弄坏,再分四步改造:第一步描述「需要什么」而不是「谁来做」,第二步让每个邮件提供商各成一个类,第三步让欢迎邮件那段逻辑重新变得无聊(因为它不再关心实现),第四步把「用哪个实现」的决定收拢到一个入口。
🔑 核心要点
- 直接在业务逻辑里 new SDK,就是硬耦合的标本。
- 第一步不是抽象,是把需求说成接口:我要「发一封邮件」,不是「用 Resend 发」。
- 每个 provider 一个类,让替换变成新增文件而不是改判断。
- 决定实现的地方只能有一个:入口处一次性决定,业务代码永远不知道是谁在发。
- 改造后的收益是「无聊」——欢迎邮件那段回到只需读一行就懂的状态。
💡 金句
Everyone says it's good. Almost nobody shows you a case where you actually feel the difference.
译:所有人都说它好。几乎没有人给你一个能让你真切感受到差别在哪的例子。
← 返回 dev.to 首页