对象论眼中,世界是由各种对象组成的,每个对象有自己的数据和逻辑,如图 1.2 所示。在这
件事里,有五个基本对象:甲、乙、丙、小二和老板
(注意,这里我们还没有提到类和抽象等概念,
所以不要让固有思维跳出来,在这里要只认识对象,不认识类等概念。现在我们只讨论世界观的基
本问题:程序世界的本质,至于更具体的问题,留待后面讨论)
。每个对象有自己的一系列数据和
逻辑,这里只列出了我们关心的部分。
然后呢?没有然后了。没错,在对象论眼里,这就是这件事的本质模样,这件事所涉及的东西
就是这么几个对象,本来它们各自独立,老死不相往来。只不过在“住店”这个外部驱动力下,几个对
象“偶然”、“暂时”互相联系,利用其他对象提供的公开服务,完成了一些交互。在交互中,各自的数
据可能会发生一些变化,但对象的本质没有变。这里也要注意,这种交互虽然在一定程度上由既定
逻辑预定义,但不像过程论认为“万事万物都已注定”,在对象论下,对象间的交互是“偶然的”、“暂时
的”,这次五个人因为住店这个外部驱动力交互了一次。但下次如果魏国和蜀国交战变为驱动力,他
们间的交互就不是拿钱给钱了,而是刀兵相见。所以,对象论不认为“一切都已注定”。
通过上面一个例子,不知各位是否已经明白程序世界中两种世界观看事物的不同。下面,有一
些问题还要明确一下。
I. 过程论和对象论是两种看世界的观点,没有孰对孰错、孰好孰坏之分。
II. 过程论和对象论不是一种你死我活的绝对对立,而是一种辩证统一的对立,两者相互渗透、
在一定情况下可以相互转化,是一种“你中有我、我中有你”的对立。如果将对象论中的所有交互提取
出来而撇开对象,就变成了过程论,而如果对过程论中的数据和逻辑分类封装并建立交互关系,就
变成了对象论。
III. 过程论相对确定,有利于明晰演进的方向,但当事物过于庞大繁杂,将很难理清思路。因为
过程繁多、过程中又有子过程,容易将整个世界看成一个纷繁交错的过程网,让人无法看清。
IV. 对象论相对不确定,但是因为以对象为基本元素,即使很庞大的事物,也可以很好地分离关