3.2 过程和高阶抽象

函数在某些语言环境下是可执行的过程,构建过程抽象和构建数据抽象是计算机语言系统的两种编程语言世界观,而抽象的核心在于对本质的解释和对屏蔽细节的处理。

我们可以简便地使用类型/原型来定义一个实例,以便高效地声明一类数据模型。随着时间的推移,这些数据模型的状态会发生变化、互相影响,进而演化出整套系统。

这种描述有些类似电影中的群戏,如图3-3所示。在电影《十二怒汉》中,12个主角代表了12种人物类型,剧中人物的行为(状态变化)来自每个人物(实例)的设定。这些行为相互推进,影响整个电影(数据模型)的走向。

图3-3 电影中的群戏示意图

群戏的核心在于多种事物的串联行为,需要先对事物进行描述,再对行为进行归类,进而按照剧本驱动光影(系统)流转。

与之类似,我们也可以高效地抽离受到较多关注的过程,通过命令、迭代器对过程/函数进行类型描述,这种编程叙事的世界观来自数据模型层面的抽象。

从过程推演的角度来说,如果不是很执着于过程的归类和定义,我们可以尝试多做一些事情。