知识卡片

契约替换

专业/工作

内容

可替换性要求新实现遵守原接口承诺,让调用方无需察觉变化。继承只有在真正的 is-a 关系下才合适,许多扩展更适合委托。发散:灵活系统靠清晰契约变强,不靠继承层级变深。

参考来源

《高效程序员的45个习惯:敏捷开发修炼之道 (图灵程序设计丛书 11)》第6章《敏捷编码》