首页/开发/系统分析与架构设计速查/抽象分支(Branch By Abstraction)
架构风格与模式58 条

抽象分支(Branch By Abstraction)

在同一代码库中引入抽象层,把旧实现替换为抽象调用,再并行开发新实现并切换,最后清理抽象;避免长期存在的合并分支。

步骤引入抽象 → 旧实现适配 → 新实现并行 → 切换 → 删除旧实现与抽象
与特性分支对比持续集成主干,风险通过抽象与开关控制
适合底层组件替换、框架升级、大范围重构
  • 抽象层接口按调用方需求设计,不预设实现细节
  • 旧实现先适配到抽象,保持行为基线不变
  • 新实现与旧实现并行,跑对照测试比对输出
  • 切换用开关控制,按流量比例逐步放开
  • 收尾删除开关、旧实现与不再需要的抽象层
抽象层是过渡产物,切换完成后应及时移除,避免留下无意义的间接层。

易错点

  • 抽象层设计过度,替换结束后无法删除
  • 新旧实现同时对外提供服务,行为差异未做对照验证

数据来源与参考

  • Martin Fowler bliki《Branch By Abstraction》(2009)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌