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