10 | 理论七:为何说要多用组合少用继承?如何决定该用组合还是继承?

Q 为什么不推荐使用继承?
A 继承是面向对象的四大特性之一, 用来表示类之间的 is-a 关系, 可以解决代码复用的问题. 虽然继承有诸多作用, 但继承层次过深, 过复杂, 也会影响到代码的可维护性. 在这种情况下, 我们应该尽量少用, 甚至不用继承

Q 组合相比继承有哪些优势?
继承主要有三个作用:
表示 is-a 关系, 支持多态特性, 代码复用. 而这三个作用都可以通过组合, 接口, 委托三个技术手段来达成, 除此之外, 利用组合还能解决层次过深, 过复杂的继承关系影响代码可维护性的问题

Q 如何判断是该用组合还是该用继承?
A 尽管我们鼓励多用组合少用继承, 但是组合也并不是完美的, 继承也并非一无是处. 在实际的项目开发中, 我们还是要根据具体的情况,来选择该用继承还是组合. 如果类之间的继承结构稳定, 层次比较浅, 关系不复杂, 我们就可以大胆的使用继承. 反之, 我们就应该使用组合来替代继承. 除此之外 还有一些设计模式, 特殊的应用场景, 会固定使用组合 或者继承

你可能感兴趣的:(10 | 理论七:为何说要多用组合少用继承?如何决定该用组合还是继承?)