开闭原则的底层:不是模式,是生存法则
很多人觉得开闭就是多态、策略模式。但远不止。它的底层机制,其实是让模块间通过协议通信,而不是直接依赖实现。就像电源插座——插座本身不关心你插的是微波炉还是电钻,只要符合220V、插头形状对,就能工作。代码里呢?这个协议,在强类型语言里,就是接口和虚函数表。
数据论证:那一次,我们用压测数据说服了CTO
去年,我们重构一个支付路由模块。旧代码:一个3000行的switch-case,每次增加支付通道,就改那个文件。上线心惊胆战。重构后,采用策略模式+SPI插件化。每个通道独立jar包,实现PaymentChannel接口。关键来了,压测对比:
三个血淋淋的坑,以及我是怎么爬出来的

工程美学:开闭不是目的,而是结果
