为什么阿里巴巴建议开发者谨慎使用继承?

简介: 对于很多开发者来说,继承肯定都是不陌生的。但是,继承一定适合所有的场景吗?毫无忌讳的使用继承来做代码扩展真的好吗?

作者 | Hollis

从学习Java的第一天起,我们就知道Java是一种面向对象语言,而学习Java的第二天,我们就知道了面向对象的三大基本特性是:封装、继承、多态。

所以,对于很多开发者来说,继承肯定都是不陌生的。但是,继承一定适合所有的场景吗?毫无忌讳的使用继承来做代码扩展真的好吗?

为什么《阿里巴巴Java开发手册》中有一条规定:谨慎使用继承的方式进行扩展,优先使用组合的方式实现。

image.png

本文就来针对这些问题,简单分析一下。

面向对象的复用技术

每个人在刚刚学习继承的时候都会或多或少的有这样一个印象:继承可以帮助我实现类的复用。所以,很多开发人员在需要复用一些代码的时候会很自然的使用类的继承的方式,因为书上就是这么写的(老师就是这么教的)。但是,其实这样做是不对的。长期大量的使用继承会给代码带来很高的维护成本。

前面提到复用,这里就简单介绍一下面向对象的复用技术。

复用性是面向对象技术带来的很棒的潜在好处之一。如果运用的好的话可以帮助我们节省很多开发时间,提升开发效率。但是,如果被滥用那么就可能产生很多难以维护的代码。

作为一门面向对象开发的语言,代码复用是Java引人注意的功能之一。Java代码的复用有继承,组合以及代理三种具体的表现形式。

来源 | HollisChuang's Blog

相关文章
|
SQL 缓存 Oracle
为什么阿里巴巴禁止使用 count(列名)或 count(常量)来替代 count(*)
本文介绍了COUNT函数的用法,主要用于统计表行数。主要用法有COUNT(*)、COUNT(字段)和COUNT(1)。
12943 0
为什么阿里巴巴禁止使用 count(列名)或 count(常量)来替代 count(*)
|
前端开发 网络协议 Dubbo
超详细Netty入门,看这篇就够了!
本文主要讲述Netty框架的一些特性以及重要组件,希望看完之后能对Netty框架有一个比较直观的感受,希望能帮助读者快速入门Netty,减少一些弯路。
97367 33
超详细Netty入门,看这篇就够了!
|
3月前
|
人工智能 Java 应用服务中间件
AgentForge —— 让一句话变成一个生产可用的 Agent
AgentForge是阿里飞猪自研的“Agent工厂”平台,支持非技术同学5分钟零代码造出真Loop Agent,Node/Java工程师可直接部署生产级Agent团队。平台内置ANVIL框架、FECHO网关、fliggy-memory-sdk等核心技术,打通BUC鉴权、Aone容器、钉钉、SchedulerX等集团生态,实现“一句话描述→自动装备→云端运行→多Agent编排”全链路闭环。
924 1
|
9月前
|
搜索推荐 API 开发者
支持"同款搜索"(精确匹配)和"相似搜索"(模糊匹配)两种模式
图搜接口对图片的一个要求:图片不要大于2兆,600*600像素大小,要符合系统规则,图片尽量清晰, 图片越小越好,处理API返回的错误码和异常情况。
|
缓存 安全 Java
Java中线程池,你真的会用吗?
本文我们就来围绕这个问题来分析一下为什么JDK自身提供的构建线程池的方式并不建议使用?到底应该如何创建一个线程池呢?
10432 123
Java中线程池,你真的会用吗?
|
关系型数据库 MySQL 数据库
[图解MySQL]MySQL组提交(group commit)
[图解MySQL]MySQL组提交(group commit)
19143 0
|
弹性计算 安全 数据安全/隐私保护
阿里云ECS服务器被植入挖矿木马解决过程分享
阿里云ECS服务器是目前很多网站我们在使用的,但是如果安全做的不够好,有时候就会被植入木马,例如我们有时候会收到阿里云的短信提醒,提醒服务器存在挖矿进程,请立即处理的安全告警。 出现这种情况往往网站都无法正常的打开,卡的连服务器SSH远程连接都进不去,给我们造成了很大的影响。
12138 0
|
Java Maven
修改配置maven镜像仓库位置,将maven镜像更换成阿里镜像
修改配置maven镜像仓库位置,将maven镜像更换成阿里镜像
14922 1
|
SQL Java 程序员
全新出击!《Java开发手册(嵩山版)》解读手册升级下载
《〈Java开发手册(嵩山版)〉灵魂15问》重磅来袭!“一线大厂如何用Java”解读再升级,千万阅读量博主深究Java规约背后的原理。规范学好Java还不来看一看?
75665 0
全新出击!《Java开发手册(嵩山版)》解读手册升级下载
|
运维 OLAP 测试技术
Doris是否可以替代influxdb
【4月更文挑战第20天】Doris是否可以替代influxdb
1324 0

热门文章

最新文章