作为人类,我们总是要面对生命中泛滥的海量信息。即便能够把所有持续轰炸的“电子信息”源——E-mail、声音邮件、新闻广播等——暂时关闭,我们的感觉器官依然不屈不挠地收集着周围数以百万比特计的信息。然而,我们也有办法从所有这些信息中提炼精华,而不致为其所淹没。大脑天生懂得简化接受到的信息,让信息细节通过一种叫做“抽象”的过程得到管理。
在本章中,你将学习到:
l 抽象如何简化我们对世界的认识
l 如何对知识进行分级处理,减少每时每刻接收到的信息
l 软件开发中的抽象
l 作为软件开发者,在试图对真实世界的各种状况进行软件建模时将遇到的挑战
2.1 通过抽象进行简化
花点时间看看现在你所处的屋子。一开始,你可能会觉得没什么可观察的:家具、照明设备,可能种了点植物,挂着些艺术品,或者还有其他人或者宠物在屋里。这里也许存在仔细观察外部世界的一个窗口。
现在再看看:你眼中的每样物品,都有着无数的细节可以观察:尺寸、颜色、功用、组成部分(桌腿、灯泡),等等。还有,这些组成部分也包含了许多相关细节:桌腿的材质(木质或金属)、灯泡功率等。好,现在用你的其他感官去感受:打鼾声(希望不是你在读本书时睡着了!)、从楼下厅里的微波炉飘出的爆米花香味,如此等等。最后,再想想那些看不见的细节——是谁制造它们的?其化学、分子、生物成分是什么……
很显然,大脑要处理的信息量远远超出负荷!对于绝大多数人而言,这不成其为问题,因为大家都天生长于抽象:识别和关注状况或物体的重要特征,淘汰掉所有非本质信息。
大家熟悉的抽象范例是游览路线图。作为一种抽象,路线图显示指定地理区域的特征,让人可以依照其指示在该地区内游览:它包括主要公路、游览点、河流主干之类的障碍物等等。就必要性而言,地图并不包括真实世界的所有存在物:如每幢房屋、每棵树、每个路牌、每块布告、每盏交通灯和每间快餐店等。如果地图上真有这些东西,那么一定会搞得一团糟,压根儿没法使用;重要特征物反而不会被突出。
把游览路线图和该地区的地形图、气候图和人口密度图相比较:它们分别抽象了真实世界的不同特征——根据使用者类型来确定。
以一片地块为例。画家会以绘画为目的,从颜色、纹理和形状的角度去观察。房屋建造者会考察最佳的建造点,估算为了腾出足够空地需要砍伐的树木。出于保护生物的目的,生态学家则会仔细研究每种树和其他植物/动物,得到该地区的生物多样性特征;而一个孩子则可能是在寻找搭树屋的绝佳地点!上述四种观察者有共同关心的元素——例如,树木的种类、尺寸、位置——不过其他元素就不是和每种抽象模型都有关系的了。





