jones's technical blog

  • 首页
  • 文章归档
  • 默认分类
  • 关于页面

  • 搜索
博客系统 linux 酸酸乳

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

发表于 2020-05-08 | 分类于 设计模式 | 0 | 阅读次数 136

一. 为什么不推荐使用继承

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

二. 组合相比继承有哪些优势

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

三. 如何判断该用组合还是继承

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

jones wechat
更多精彩内容请关注微信公众号
  • 本文作者: jones
  • 本文链接: https://www.lushuaiyu.com/archives/为何说要多用组合少用继承如何决定该用组合还是继承
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
# 博客系统 # linux # 酸酸乳
通用 mapper -- mybatis 逆向工程
为什么基于接口而非实现编程?有必要为每个类都定义接口吗
  • 文章目录
  • 站点概览
jones

jones

程序猿

46 日志
16 分类
3 标签
Github E-mail
Creative Commons
0%
© 2021 jones
主题 - NexT.Pisces