为何要少用继承
- 继承层次过深、过复杂,会影响到代码的可维护性
- 可能会违背最小知识原则(迪米特法则),暴露不该暴露的接口给外部,增加了类使用过程中被误用的概率
如何决定该用组合还是继承
如果
- 类之间的继承结构稳定(不会轻易改变)
- 继承层次比较浅(比如,最多有两层继承关系)
- 继承关系不复杂
我们就可以大胆地使用继承;
反之
- 系统越不稳定
- 继承层次很深
- 继承关系复杂
就尽量使用组合来替代继承。
如何用组合替换掉继承
通过组合、接口、委托,可完全替换掉继承
如果
我们就可以大胆地使用继承;
反之
就尽量使用组合来替代继承。
通过组合、接口、委托,可完全替换掉继承