知识卡片
紧耦合的代价与设计稳定性的判断标准
内容
司机类直接依赖具体奔驰车类时,新增宝马车型必须修改司机类——被依赖者的变更让依赖者承担 修改成本,这是紧耦合的代价。稳定性判断标准是:”松松土”(引入新变化)后原设计能否不改 代码就适应。改用[[依赖倒置原则的三层含义与Java体现]]后,双方依赖抽象接口,新增车型只需 新增实现类。发散:稳定性不是主观感觉,而是看新增变化要改几个文件。
参考来源
- 位置:《设计模式之禅(第2版)》第3章《依赖倒置原则》(源文件:_epub-src/text/part0012.html)
- 结论依据:原文用司机紧耦合奔驰车、新增宝马车型必须修改Driver类的反证法案例,说明"被依赖者的变更竟然让依赖者来承担修改的成本",并给出稳定性判断标准"适当地'松松土',观察'设计的蓝图'是否还可以茁壮地成长"。
- 原始内容:设计是否具备稳定性,只要适当地"松松土",观察"设计的蓝图"是否还可以茁壮地成长就可以得出结论,稳定性较高的设计,在周围环境频繁变化的时候,依然可以做到"我自岿然不动"。