Java面向对象 02根源篇:为什么面向对象会成为主流

反直觉的根源:不是它有多完美,是软件规模膨胀后的必然选择

小程序用面向过程又快又爽,系统大到一定程度后,流程化的复杂度会指数级爆炸;面向对象用封装、分层、抽象来管理复杂度,是软件规模增长后的必然演化结果

图片

很多人觉得面向对象能成为主流,是因为它更先进、更优雅。实则任何编程范式的流行,都不是技术审美决定的,是软件规模倒逼的结果。

图片

软件规模的增长,会带来复杂度的失控:

  • 小型程序,几百几千行代码,面向过程清晰直白,从头到尾顺着流程走,开发效率极高。

  • 中型系统,几万几十万行代码,函数越来越多,调用关系越来越乱,修改一处牵一发而动全身,维护成本指数级上升。

  • 大型系统,百万千万行代码,多人协作、多模块并行,必须有清晰的边界、稳定的抽象、可控的依赖,否则系统会快速腐坏。

图片

面向对象的三大特性——封装、继承、多态,本质上都是管理复杂度的工具:封装划清边界,继承复用抽象,多态解耦实现。它没有让简单的事情更简单,但它让复杂的事情变得可控。

图片

不是我们偏爱面向对象,是系统大到一定程度,我们别无选择。

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值