智游城

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: mattsX
打印 上一主题 下一主题

请问 有没有 看懂Howard 的 "一个程序员的笑话"

  [复制链接]
11#
mc07361810 发表于 2010-12-6 16:44:24 | 只看该作者
哈哈,空杯大有用处,口不渴,尿急了
半路相遇 发表于 2010-12-5 10:06

我认为你的答案才是正解
12#
 楼主| mattsX 发表于 2010-12-7 04:00:33 | 只看该作者
回复 10# Howard
Howard 说的是 C++ 虚拟函数

通常程序员 处理  以下问题:
if (x == a)
    b = 1/2;
else
    b  = 0;

如果 不做 "b = 0", 会导致大问题.

但是程序员 搬它到日常生活:

如果半夜醒来口渴
    杯 有水
不然
    空杯
13#
RichZhu 发表于 2010-12-7 04:21:19 | 只看该作者
回复  Howard
但是程序员 搬它到日常生活:

如果半夜醒来口渴
    杯 有水
不然
    空杯
mattsX 发表于 2010-12-7 04:00


应该是:半夜醒来,按预定程序拿杯。
口渴,拿有水的杯子。
不口渴,拿没有水的杯子。
完美的程序。。。
14#
idle 发表于 2010-12-7 06:07:03 | 只看该作者
顶五楼的兄弟。
按五楼兄弟的思路,那这位程序员对异常情况处理的不完善呀。
半夜醒来,
口渴--》有水的杯子
不口渴--》没水的杯子
尿急??
15#
linjingping7122 发表于 2010-12-8 11:55:45 | 只看该作者
啊啊,有意思啊,一点都不懂计算机
16#
omylove 发表于 2010-12-8 13:02:11 | 只看该作者
应该是:半夜醒来,按预定程序拿杯。
口渴,拿有水的杯子。
不口渴,拿没有水的杯子。
完美的程序。。。 ...
RichZhu 发表于 2010-12-7 04:21


没错。。

喝水应该是一个行为(接口),至于实际执行什么看当时需要(分派),

i = 水杯 IF 口渴
i = 空杯 IF 不口渴
i.drink()

可扩展性太高了。以后还可以果汁,茶,咖啡等等。

还有我觉得放个空杯这个应该是结构设计而不是异常设计。

完美的程序。。。
17#
omylove 发表于 2010-12-8 13:07:14 | 只看该作者
回复 12# mattsX

更通常的应该是:
b  = 0;
if (x == a) b = 1/2;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|智游城论坛

GMT+8, 2024-10-20 11:18 , Processed in 0.043750 second(s), 8 queries , Redis On.

Powered by Discuz! X3.2

© 2001-2012 Comsenz Inc.

返回顶部