欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

敏捷软件开发:原则、模式与实践

程序员文章站 2022-05-22 23:21:51
...
  1. 对于继承,is-a是关于行为的。例如,在我们看来正方形 is-a长方形,但是这个并不是行为上的is-a。正方形的行为上要求长和宽是相等的,所以设计上如果让正方形继承长方形,那正方形set长和宽的方法会修改另外一个属性,保持长和宽相等。
  2. 契约设计(Design by Contract):在继承一个类的时候,只能使用相等或更弱的前置条件替换原始前置条件,只能使用相等或者更强的后置条件来替换原始后置条件。
  3. is-a太过于宽泛而不应该作为可继承的标准,可继承的标准应该是可替换。LSP
  4. 依赖倒置的核心就是不要调用我,我会调用你,高层依赖高层,底层依赖高层