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