其實(shí)從某種程度上來(lái)說(shuō),編程就是將我們的想法用計(jì)算機(jī)能夠理解的語(yǔ)言實(shí)現(xiàn)出來(lái),現(xiàn)在的項(xiàng)目不像以前那樣輕,而是非常龐大,如果我們一開(kāi)始就沒(méi)有設(shè)計(jì)好項(xiàng)目的輪廓(整體框架),那么隨著項(xiàng)目的開(kāi)展和發(fā)展,暴露出的問(wèn)題會(huì)越來(lái)越多,維護(hù)成本也會(huì)越來(lái)越大,當(dāng)然,今天我們不談這么宏觀的問(wèn)題,而是談?wù)?,在編程里面?duì)我們影響最大的三種思想。 結(jié)構(gòu)化程序設(shè)計(jì)思想 結(jié)構(gòu)化程序設(shè)計(jì)思想 在面向?qū)ο笤O(shè)計(jì)沒(méi)有出現(xiàn)之前,結(jié)構(gòu)化程序設(shè)計(jì)是軟件設(shè)計(jì)里面的主流,并且它提出了一個(gè)基本原則(自頂向下、逐步求精、模塊化)和探索到一個(gè)結(jié)論(任何一個(gè)算法只需要使用3種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)就能夠表達(dá)出來(lái))。 如果給你一塊很大的地,你是不是會(huì)拿出紙來(lái)畫一張圖,首先畫整個(gè)地,然后將這塊地分成幾個(gè)小塊,最后再來(lái)決定每個(gè)塊種什么植物,這個(gè)道理就體現(xiàn)了結(jié)構(gòu)化程序設(shè)計(jì)的基本原則,用這個(gè)原則去實(shí)現(xiàn)HTML里面的頁(yè)面,我想是非常容易的了。 而結(jié)構(gòu)化程序設(shè)計(jì)探索到的結(jié)論也讓我們明白了,為什么每種編程語(yǔ)言都有循環(huán)結(jié)構(gòu)和選擇結(jié)構(gòu)。 面向?qū)ο笤O(shè)計(jì)思想 面向?qū)ο笤O(shè)計(jì)思想 在我們接觸的任何一種事物中,我們發(fā)現(xiàn)它們都是一個(gè)個(gè)的獨(dú)立的個(gè)體或者幾個(gè)獨(dú)立的個(gè)體組合而成,并且每個(gè)個(gè)體都有自己的特征和行為,比如人有眼睛、鼻子、耳朵等,并且眼睛具有看、耳朵具有聽(tīng)、鼻子具有聞的功能,于是我們的前輩些就產(chǎn)生了一個(gè)想法,我們是否可以提供一個(gè)東西來(lái)將這些封裝在一起,形成一個(gè)獨(dú)立的東西,這不正是將現(xiàn)實(shí)世界和代碼世界聯(lián)系起來(lái)了嗎?于是面向?qū)ο蟮乃枷刖瓦@樣誕生了,并且面向?qū)ο蟮乃枷敫衔覀內(nèi)祟愃诘氖澜绾臀覀兊乃季S,這也是為什么現(xiàn)在大多數(shù)語(yǔ)言都具備面向?qū)ο笤O(shè)計(jì)的功能。 分層設(shè)計(jì)思想 分層設(shè)計(jì)思想 學(xué)過(guò)計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)的人都知道,TCP/IP參考模型由應(yīng)用層、傳輸層、網(wǎng)絡(luò)層和網(wǎng)絡(luò)接口層四層組成,并且不管每層怎么實(shí)現(xiàn),但是它對(duì)外提供的服務(wù)接口都是一致的,也就是每層都是獨(dú)立的,這就是一個(gè)分層設(shè)計(jì)的典型案例,在現(xiàn)在,分層設(shè)計(jì)思想隨處可見(jiàn),比如我們的APP通過(guò)接口訪問(wèn)服務(wù)器獲取需要展示的數(shù)據(jù),以及MVC結(jié)構(gòu)也是,可見(jiàn)分層設(shè)計(jì)思想對(duì)我們的影響是非常巨大的。 分層設(shè)計(jì)思想最大的一個(gè)優(yōu)點(diǎn)就是將低耦合、強(qiáng)內(nèi)聚發(fā)揮到極致,這是每個(gè)程序員都在追求的目標(biāo)。 為了鼓勵(lì)我們創(chuàng)造更多的文章,請(qǐng)動(dòng)動(dòng)你的小手指,分享、贊或評(píng)論一下,謝謝。 |
|
來(lái)自: 豫龍晏子 > 《文件夾密碼與格式》