“ ‘大浪淘沙始见金’。关于抽象思维的加强,那些经过时间洗礼遗留下来的宝贵词汇中蕴藏了鲜活的生命,借助这些词汇,我们还原、嫁接过来珍贵的思维习惯。”

关于抽象,上一篇(抽象?我太难了(一):抽象在自然语言中普通存在)文章中, 我们引入“抽象”难题后,转身从自然语言中找了些抽象的影子,也列出了本系列文章的提纲。本篇文章中, 我们开始第二个话题,即“中英文词汇意义上的释义”。
关于抽象思维的Get和落地,如果说目前自然语言中的抽象思维是一个具体实例的话,那么Abstract(抽象)词汇的源头,蕴含了宝贵的过程信息。
这个可贵的信息,就像沙漠中的九死还魂草一样,干旱缺水时,它蜷缩成一个干枯的球状,死了一样,但只要一遇到水,就能很快地长出绿叶,叶子也舒展开来,变得生机勃勃。
这篇访问中,在词汇源头上的探寻,就是给这个“九死还魂草”加些水,让词汇背后提炼萃取的过程还原回来,从而这样的思维习惯嫁接到咱们身上。

先看Abstract这英文词的含义。
Abstract释义及词源
在英文中, Abstract作为动词,普遍的一个解释是“To extract key information from a longer document or text”, 这里的关键词是Extract和Key,即提炼出关键信息。对应的例句有“I had to abstract all of the relevent information from that lengthy report and then present it to management”。咱们也注意到, 这个Abstract,潜在的搭配方式是“Abstract…from…”, 对应到实际逻辑上来看,是一个深加工的过程,不是简单地拿来就用。
上面这个含义,可以Abstract一词的词源得到证实。如下图所示, 正好对应着本意“从…中提炼出来”。

Abstract的核心是提炼,是一个深加工,但具体提炼了什么?加工出来一个什么东西呢?可惜英文中没有说。关于这个问题, 我们看下中文的拆解。

抽取出大象
前面通过英文Abstract的拆解, 我们知道了Abstract是一个深加工的提炼过程, 但具体怎么提炼、提炼什么,英文Abstract中没有提到。 我们试着从中文词儿“抽象”中拆解下。
由于“抽象”一词是一个外来语,基本是Abstract一词的直接翻译,咱不再翻《辞海》这样的大部头了。虽说“抽象”是一个翻译而来的外来词,但翻译过程中,结合中华传统文化,让词的含义增色不少。
具体拆开来看是这样的。
1. 抽,几乎完全对应着英文中的Abstract,上面已经提到, 这里不再重复。
2. 象,是关键,也是翻译过程中的亮点。
中国传统文化中,象的学术解释,过于复杂,咱这个千字小文Hold不住。这里只粗浅地说下自己的理解及背后的逻辑。放到抽的语境中看,执行“抽”这个操作时,抽取了什么呢?抽取了像的东西,即提取了一堆具体事物中像的那个东西,这个像的东西是什么呢?是象,即共性的东西。《道德经》中提到的“大象无形”是象的一个重大体现。
回到抽取的逻辑上来,抽取了众多事物中像的东西, 即象,也就是先忽略掉了具体的内容。
关于抽取出来的象,上面的描述还是不具体, 我们借用下面的Ump图,看下实际建模中,这个象的体现。

上图是一个Person(人)、Employee(员工)和Customer(顾客)三者继承关系的建模。这个建模中, 员工和顾客都有name(姓名)和address(地址),这个共性(象)提炼出来,放到Person中,这时Person类具体了提炼(abstract)出来共性(象)的东西, 于是我们称之为Abstract Class,在Java中,我们用abstract这个关键字来修改。建模中的printInfo方法,也是类似的逻辑,这个printInfo行为,也是员工和顾客共用的,为了方便管理, 我们提取到Person中来。

至此, 关于抽象, 我们从词源及词根的角度拆解、还原了其背后的思维方式。希望这个还原过程,能帮大家方便、鲜活地理解抽象这一良好的思维习惯。
就像图中的九死还魂草一样,通过这个探究,抽象这个思维方式, 不再抽象,不再躺在书本中,而是生机勃勃、英姿飒爽地协助到我们的软件建模、业务发展。



