漫画 | 为什么面向对象糟透了!

这篇文章讲述了Java、Lisp和C语言在HelloWorld咖啡馆的编程较量,Java展示多态理念,C语言强调接口稳定,Lisp则借机考验Java的面向对象理解。作者通过故事形式探讨了编程范式和模块化的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

又是周末,编程语言“三巨头”Java, Lisp C语言照例在Hello World咖啡馆聚会。

2bfcdaf295acb3bf28ce16d7fe374c98.png

对于三位老顾客,服务员总是殷勤接待

4dec5306996fe0a334e1dc43fbc8442a.png

(码农翻身注:这是一篇很早之前的文章,作者是大名鼎鼎的Joe Armstrong , 也就是Erlang之父。)

8ea80bfddd1242727620ec90a70d41c8.png

原来这是Erlang之父Joe Armstrong写的一篇“战斗檄文”,里边充满了对面向对象的批判。

5707d91a5caffb5f62f90019ab0b3414.png

Java看到C语言这么顽冥不化,决定上代码,给他点儿颜色瞧瞧。

9999118730670268d8067a33de89c426.png

没想到C语言不甘示弱,也把代码搬了出来

7e76c87c2b2d171875ef075f8217bc70.png

cbd09010e4ea2034a3ad48587d0cab0b.png

Java无语,心说这两个家伙就是胡搅蛮缠。

突然,他心中一动:我怎么忘记多态了!

4efb0aa2c9cdb2167b079621c16764bb.png

d0ee350c6dd70023f310eae72c14bcb6.png

070de2611df0bb3d22a72c9122a2d9ba.png

44e1993a553b9641c11db65b6707299c.png

Java看到C语言已经入套,从口袋里拿出一幅图,准备给他最后一锤。

47642e191f39f0ba8ffb2c1b99e8b1cb.png

6552cb66157fe68007151f2e395d08ec.png

C 语言沉默了,他还想反击,但一直找不到突破口。

243e44d295ad17a1435e25a9a3f55c22.png

21f0db692c8e39952046453a9c326049.png

(码农翻身注:C语言实现面向对象的详情可以移步《C语言:春节回家,就我没有对象!》)

76c6b5f216a3f8add1ab132863bf0271.png

C语言点头,编程的关键点就是找到、抽象出稳定的接口,针对这个接口编程,这样就可以让各个模块能够独立地变化。

c87647e7a3ab87524dfb89931b13d58e.png

Java没想到支持函数式编程的Lisp居然给自己出了一道面向对象的题,大为惊讶。

他稍一思考,就在白板上花了一幅图。

d933b1c78c0d25dd5c0af41979252e92.png

Lisp看到Java 掉入了陷阱,心中不由一乐。

da6d9bbdaa6a448b1c8b0191de558fd3.png

0794443aafd8ffff816f488063eea8fa.png

235787c072d80037e9675593d208dd15.png

Java 低头沉思不语,突然,脑海中想起来了那句话:优先使用组合而不是继承。

怎么使用组合?必须得改变下看待问题的方式,对,应该这样:

4318460e03639c8ddc4a4a63fc3f0618.png

b5d87a1486980b81b9dcdf4849dbf61a.png

1fdd5b36b1b1c2ec11f3018ce95e8238.png

(完)

双11期间我的书《码农翻身》和《半小时漫画计算机》做了一个活动,可以『以50元的价格,买到两本书』,活动1000本,很快就一抢而空,很多小伙伴留言说没抢到,挺可惜的。

今天又申请了1000套作为福利,算是双11的返场吧,需要的小伙伴这次千万不要错过! 

截止时间:11月24号下午2点

拼手速了!我的图书策划人说这个应该是今年最后一次粉丝福利,错过了再等一年也未必有了!

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值