谈编程抽象思维

抽象是一种能让你在关注某一概念的同时可以放心忽略其中一些细节的能力。

大约一年前,朋友曾对我说,对程序员来说抽象思维很重要。当时一脸懵懂,并不能理解他说的编程中的抽象思维是什么意思。其实,抽象这种方法我在这工作中也一直在用,只是没有意识到这就是抽象。直到上周在《代码大全》里看到对抽象相关概念的论述,才豁然开朗。

书中举了一个很简单的例子,我们在想到房子的时候已经在一定程度上对房子进行了抽象。想到房子时可能会是下面的样子。


谈编程抽象思维_第1张图片
现实世界中的房子

会想到房间的门、玻璃、窗户等等,但是我们很少会把房子想象成是由一个个原子按照一定规律排列组成的。这其实就是抽象。因为我们脑袋里塞不下房子完整的原子排列信息,信息量太大也太复杂,我们只好对原子进行次的抽象,铁门、木门、桌子、椅子、地板、墙都是在一定形式上对原子的抽象。房子又是对门、墙的更高一级的抽象。可以发现有了抽象概念以后,房子对我们来说就简单很多了。

在编程的世界里,子系统、模块、包、类、方法、语句是粒度不同的抽象,如果把一个系统分解成语句很明显要比把系统分解成方法要复杂的多,分解成方法要比分解成类复杂的多。当我们把解决问题的中心聚集在方法上的时候,语句的具体实现细节在一定程度上被忽略了,如果方法写的很好,只要关注方法的输入输出,和方法名的语义就可以了,至于说方法里的语句是什么顺序,用了哪些高深的技巧,我们是完全不需要关注的。

你可能感兴趣的:(谈编程抽象思维)