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

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容