为何多用组合少用继承?如何决定该用组合还是继承?

为何要少用继承

  1. 继承层次过深、过复杂,会影响到代码的可维护性
  2. 可能会违背最小知识原则(迪米特法则),暴露不该暴露的接口给外部,增加了类使用过程中被误用的概率

如何决定该用组合还是继承

如果

  • 类之间的继承结构稳定(不会轻易改变)
  • 继承层次比较浅(比如,最多有两层继承关系)
  • 继承关系不复杂

我们就可以大胆地使用继承;

反之

  • 系统越不稳定
  • 继承层次很深
  • 继承关系复杂

就尽量使用组合来替代继承。

如何用组合替换掉继承

通过组合、接口、委托,可完全替换掉继承

你可能感兴趣的:(为何多用组合少用继承?如何决定该用组合还是继承?)