面向?qū)ο缶幊毯兔嫦蜻^(guò)程編程的發(fā)展歷史和各種試用的領(lǐng)域是什么?
程序員口中經(jīng)常說(shuō)面向?qū)ο缶幊獭⒚嫦蜻^(guò)程編程,他們口中的面向?qū)ο蟮降资鞘裁匆馑寄兀縿倢W(xué)習(xí)編程的你可能百度了半天也不知道這是什么意思。今天我們就來(lái)講講面向?qū)ο笈c面向過(guò)程。
我們先來(lái)解釋一下兩個(gè)詞:編年史和紀(jì)傳體。這是兩種書(shū)寫(xiě)歷史史書(shū)的方式。
編年史:按照歷史事件發(fā)生的先后順序,記錄歷史事件。
比較著名的編年史史書(shū)有《資治通鑒》,記載的是從公元前403年到公元959年發(fā)生的歷史事件,資治通鑒是按照時(shí)間順序?qū)懙摹?/p>
紀(jì)傳體:通過(guò)記敘歷史人物的活動(dòng),反映歷史事件的史書(shū)。
廣為熟知的紀(jì)傳體史書(shū)是《三國(guó)志》,它的寫(xiě)作方法是按照某個(gè)歷史人物寫(xiě)的,比如先主傳(劉備)、后主傳(劉禪)、諸葛亮傳等。
史書(shū)都是在講一個(gè)故事,而我們寫(xiě)程序是為了解決一個(gè)問(wèn)題,本質(zhì)上沒(méi)有什么區(qū)別。
面向過(guò)程編程,就是編年史的寫(xiě)法,面向?qū)ο缶幊?,就是紀(jì)傳體的寫(xiě)法,是以某個(gè)“人”為對(duì)象開(kāi)始寫(xiě)的。
可能還不是很清楚兩者的區(qū)別,沒(méi)關(guān)系,我們?cè)僬f(shuō)一個(gè)例子。
我想寫(xiě)一個(gè)程序,自動(dòng)將大象裝進(jìn)冰箱里,步驟大概是這個(gè)樣子的:
把冰箱打開(kāi)
把大象裝進(jìn)去
把冰箱門關(guān)上
好,哪些是過(guò)程呢?冰箱開(kāi)門、冰箱裝進(jìn)、冰箱關(guān)門,都是過(guò)程,于是我寫(xiě)程序時(shí),面向過(guò)程編程是這個(gè)樣子的:
冰箱開(kāi)門(冰箱)
冰箱裝進(jìn)(冰箱,大象)
冰箱關(guān)門(冰箱)
這樣寫(xiě),程序可以正常運(yùn)行,但是你是不是覺(jué)得非常奇怪呢?是不是覺(jué)得很不符合你的大腦思考方式?好,我們換成面向?qū)ο缶幊淘囋嚒?/p>
先找出你要寫(xiě)的對(duì)象是誰(shuí)。紀(jì)傳體中,我想寫(xiě)曹操的歷史,我的對(duì)象就是“曹操”這個(gè)人。同樣的,冰箱裝大象中,主要的對(duì)象是冰箱。于是我對(duì)冰箱這個(gè)對(duì)象說(shuō)道:
冰箱,你給我打開(kāi)
冰箱,你把大象裝進(jìn)去
冰箱,你把門關(guān)上
是不是看起來(lái)簡(jiǎn)單了很多?再進(jìn)一步簡(jiǎn)化變成可執(zhí)行的代碼:
冰箱.開(kāi)門().裝進(jìn)(大象).關(guān)門()
這樣一來(lái),是不是容易讀了許多,也更加直觀了,這就是面向?qū)ο蟆?/p>
常見(jiàn)的面向過(guò)程語(yǔ)言有C語(yǔ)言、Fortran語(yǔ)言,常見(jiàn)的面向?qū)ο蟮恼Z(yǔ)言有Python、C++、Java等。