COLA
COLA

换一个视角,从

业务扩展
对于只有一个业务的简单场景,对扩展性的要求并不突出,这也是为什么扩展设计常被忽略的原因,因为我们大部分的系统都是从单一业务开始的。但是随着业务场景越来越复杂,代码里面开始出现大量的

在扩展设计中,我们提炼出两个重要的概念,一个是业务身份,另一个是扩展点:
-
业务身份是指业务在系统唯一标识一个业务或者一个场景的标志。在具体实现中,我们使用
BizCode 来表示业务身份,其中BizCode 采用类似Java 包名命名空间的方式。例如,我们可以用“ali.tmall”表示阿里天猫业务,用“ali.tmall.car” 表示阿里天猫的汽车业务,而用"ali.tmall.car.aftermarket" 代表这是阿里天猫的汽车业务的后市场场景。 -
每个业务或者场景都可以实现一个或多个扩展点(ExtensionPoint
) ,也就是说一个业务身份加上一个扩展点,可以唯一地确定一个扩展实现(Extension) 。而这个业务身份和扩展点的组合,我们将其称之为扩展坐标(ExtensionCoordinate) ,如下图所示。
这样,通过业务身份