目前為止,程序的表現(xiàn)形式是對(duì)過(guò)程的敘述,順序、分支、循環(huán)結(jié)構(gòu)是最基本的原子形式。而面向過(guò)程的分析和設(shè)計(jì)無(wú)疑是最自然的框架結(jié)構(gòu),它將過(guò)程形式的代碼段再次迭代的以過(guò)程形式組合,形成整個(gè)程序。就像將句子連成段,將段連成章,將章連成篇,將篇連成書(shū)。這也是最符合閱讀者思維的形式,整個(gè)程序就像一個(gè)內(nèi)含超鏈接的文本小說(shuō),主體上是流暢的,符合連續(xù)思維的。
面向?qū)ο蟪绦虿荒苷f(shuō)是顛覆性改變,它的原子表現(xiàn)形式仍然是順序、分支和循環(huán)。而由于依賴(lài)于過(guò)程性系統(tǒng)的裝載,其整體的最外層仍然是一個(gè)過(guò)程性的函數(shù)。它與面向過(guò)程在其表現(xiàn)形式上的不同,僅僅存在于中間層。
面向?qū)ο蟪绦虻谋憩F(xiàn)形式是詞條式的,至少是傳記體的,而不是編年史。你可以想象,一部小說(shuō),作者首先把所有的故事按照角色重新歸類(lèi),再分割為一個(gè)個(gè)小故事,可以想象是這樣的:
——傳記式:
《張三傳》
張三,秦人,少年,虬髯黑臉,為人仗義。
逸事一:若傍晚時(shí)訪之,必留宿,夜必邀相飲。三十三年春,李四自華陰來(lái),……
《李四傳》
李四,中原人,白臉壯年書(shū)生,十六歲舉秀才。
逸事一:其人好游,某年遇張三……
——詞條式:
醉酒: 張三與李四飲酒,大醉……
舉秀才: 李四,十六時(shí)……
張三其人: 秦人,少年,虬髯黑臉,為人仗義……
巧遇: 三十三年,李四巧遇張三……
仗義好客: 張三好客,若傍晚時(shí)訪之,必留宿,夜必邀相飲……
這種表現(xiàn)形式是某種詞條式的分裂,故事被不斷的片段化,一個(gè)比較好的面向?qū)ο蟪绦蛞话銜?huì)有大量的細(xì)粒度對(duì)象,對(duì)象的屬性和方法都不多,方法都很短。雖然這種表現(xiàn)形式能解決一些過(guò)程性敘述的不足,但無(wú)疑過(guò)分的碎片化會(huì)帶來(lái)理解上困難,傳記式尚好,詞條式就很難了。這就是面向?qū)ο蟪绦蛟谛问缴铣霈F(xiàn)的弱點(diǎn)。分析設(shè)計(jì)時(shí),需時(shí)時(shí)腦中回想整體結(jié)構(gòu),以防偏離。而閱讀維護(hù)時(shí),需要把這些片段慢慢織起來(lái),連成一個(gè)故事。
----------------------------------------------
將SICP的注腳240記在這里:
對(duì)象模型對(duì)世界的近似在于將其分割為獨(dú)立的片斷,函數(shù)式模型則不是沿著對(duì)象間的邊界去做模塊化,當(dāng)“對(duì)象”之間不共享的狀態(tài)遠(yuǎn)遠(yuǎn)大于它們所共享的狀態(tài)時(shí),對(duì)象模型就特別好用。這種對(duì)象觀點(diǎn)失效的一個(gè)地方就是量子力學(xué),在那里,將物體看作獨(dú)立的粒子就會(huì)導(dǎo)致悖論和混亂。將對(duì)象觀點(diǎn)與函數(shù)式觀點(diǎn)合并可能與程序設(shè)計(jì)的關(guān)系不大,而是與基本認(rèn)識(shí)論有關(guān)的論題。