python 編程思想發(fā)展歷程

何謂面向?qū)ο??何謂面向過程?對(duì)于這編程界的兩大思想,一直貫穿在我們學(xué)習(xí)和工作當(dāng)中。我們知道面向過程和面向?qū)ο?,但要讓我們講出來個(gè)所以然,又感覺是不知從何說起,最后可能也只會(huì)說出一句就是那樣啦,你知道啦。而這種茫然,其實(shí)就是對(duì)這兩大編程思想的迷糊之處。

一、面向過程
首先我們來認(rèn)識(shí)下,什么是面向過程?如果咬文嚼字的話可以這樣來理解,面向過程就是面向解決問題的過程進(jìn)行編程。仔細(xì)思考一下,我們?cè)趯W(xué)習(xí)和工作中,當(dāng)我們?nèi)?shí)現(xiàn)某項(xiàng)功能或完成某項(xiàng)任務(wù)時(shí),是不是會(huì)不自覺的按部就班的羅列出我們要做的事情?(如果沒有,建議以后試著步驟化解決問題)。而當(dāng)我們按著我們羅列的步驟去解決問題時(shí),實(shí)質(zhì)上就是按照面向過程的思想去解決問題。我們羅列的步驟就是過程,按照步驟解決問題就是面向過程。

傳統(tǒng)的面向過程的編程思想總結(jié)起來就八個(gè)字——自頂向下,逐步細(xì)化!實(shí)現(xiàn)步驟如下:

將要實(shí)現(xiàn)的功能描述為一個(gè)從開始到結(jié)束按部就班的連續(xù)的步驟(過程);

依次逐步完成這些步驟,如果某一步的難度較大,又可以將該步驟再次細(xì)化為若干個(gè)子步驟,以此類推,一直到結(jié)束得到想要的結(jié)果;

程序的主體是函數(shù),一個(gè)函數(shù)就是一個(gè)封裝起來的模塊,可以實(shí)現(xiàn)一定的功能,各個(gè)子步驟往往就是通過各個(gè)函數(shù)來完成的,從而實(shí)現(xiàn)代碼的重用和模塊化編程!

二、面向?qū)ο?br> 討論完了面向過程,我們?cè)賮碚J(rèn)識(shí)下面向?qū)ο蟆K^的面向?qū)ο?,就是在編程的時(shí)候盡可能的去模擬真實(shí)的現(xiàn)實(shí)世界,按照現(xiàn)實(shí)世界中的邏輯去處理一個(gè)問題,分析問題中參與其中的有哪些實(shí)體,這些實(shí)體應(yīng)該有什么屬性和方法,我們?nèi)绾瓮ㄟ^調(diào)用這些實(shí)體的屬性和方法去解決問題。

現(xiàn)實(shí)世界中,任何一個(gè)操作或者是業(yè)務(wù)邏輯的實(shí)現(xiàn)都需要一個(gè)實(shí)體來完成,也就是說,實(shí)體就是動(dòng)作的支配者,沒有實(shí)體,就肯定沒有動(dòng)作發(fā)生!

三、面向?qū)ο蠛兔嫦蜻^程的比較

在我們將面向過程和面向?qū)ο笥懻撏旰螅瑫?huì)明顯的感覺兩者之間有著很大的區(qū)別。面向過程簡單直接,易于入門理解,模塊化程度較低。而面向?qū)ο笙鄬?duì)于面向過程較為復(fù)雜,不易理解,模塊化程度較高??煽偨Y(jié)為下面三點(diǎn):

都可以實(shí)現(xiàn)代碼重用和模塊化編程,但是面對(duì)對(duì)象的模塊化更深,數(shù)據(jù)更封閉,也更安全!因?yàn)槊嫦驅(qū)ο蟮姆庋b性更強(qiáng)!

面對(duì)對(duì)象的思維方式更加貼近于現(xiàn)實(shí)生活,更容易解決大型的復(fù)雜的業(yè)務(wù)邏輯

從前期開發(fā)角度上來看,面對(duì)對(duì)象遠(yuǎn)比面向過程要復(fù)雜,但是從維護(hù)和擴(kuò)展功能的角度上來看,面對(duì)對(duì)象遠(yuǎn)比面向過程要簡單!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容