常见形式
| 形式 | 示例 |
|---|---|
| 名称共变 | 方法名与调用处必须一致 |
| 类型共变 | 参数类型变化要求调用方同步改 |
| 语义共变 | 变量含义变化但名称未变 |
| 时序共变 | 必须先初始化再调用,顺序不可换 |
| 值共变 | 多处硬编码同一魔法值 |
共变强度与“跨边界距离”相关:同一模块内可容忍,跨服务边界时应转为显式契约。
比耦合更细致的依赖判断工具:共变指“修改一处必须同步修改另一处”。静态共变包括名称、类型、语义、位置、算法;动态共变包括执行、时序、值、身份。
| 形式 | 示例 |
|---|---|
| 名称共变 | 方法名与调用处必须一致 |
| 类型共变 | 参数类型变化要求调用方同步改 |
| 语义共变 | 变量含义变化但名称未变 |
| 时序共变 | 必须先初始化再调用,顺序不可换 |
| 值共变 | 多处硬编码同一魔法值 |