日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

代碼編程教學(xué)入門 代碼怎么編寫( 四 )


  1. 一個(gè)模塊直接訪問另一個(gè)模塊的內(nèi)部數(shù)據(jù) 。
  2. 一個(gè)模塊不通過正常入口而直接轉(zhuǎn)入到另一個(gè)模塊的內(nèi)部 。
  3. 兩個(gè)模塊有一部分代碼重疊(該部分代碼具有一定的獨(dú)立功能) 。
  4. 一個(gè)模塊有多個(gè)入口 。
3.2 內(nèi)聚的類型
代碼編程教學(xué)入門 代碼怎么編寫


內(nèi)聚,是描述一個(gè)模塊內(nèi)各元素彼此結(jié)合的緊密程度,是從功能角度來度量模塊內(nèi)的聯(lián)系 。
  • 低內(nèi)聚:模塊內(nèi)的元素的職責(zé)相關(guān)性低,通常也意味著模塊與外部是緊耦合的 。
  • 高內(nèi)聚:模塊內(nèi)的元素的職責(zé)相關(guān)性強(qiáng),通常也意味著模塊與外部是松耦合的 。
通常,解決了耦合的問題,就解決了內(nèi)聚的問題,反之亦然 。
a. 偶然性內(nèi)聚
偶然內(nèi)聚,一個(gè)模塊內(nèi)的各元素之間沒有任何聯(lián)系,僅是恰好放在同一個(gè)模塊內(nèi),業(yè)務(wù)的“Util/Helper”類有大量例子 。
  • 問題的原因:通常是模塊名起的過于抽象,導(dǎo)致不同職責(zé)的元素都可以放進(jìn)去,從而引起了低內(nèi)聚 。
  • 問題的解法:將抽象的模塊拆解成多個(gè)更小的具體模塊,例如RetailTradeHelper可以拆為OrderAmountHelper/OrderPaymentParamHelper 。

代碼編程教學(xué)入門 代碼怎么編寫


b. 邏輯性內(nèi)聚
邏輯內(nèi)聚,把幾種相關(guān)的功能組合在一起,由調(diào)用方傳入的參數(shù)來確定具體執(zhí)行哪一種功能 。
邏輯內(nèi)聚是一種“低內(nèi)聚”,某程度上對(duì)應(yīng)了“控制耦合”,它把內(nèi)部的邏輯處理暴露給了接口之外,當(dāng)內(nèi)部邏輯發(fā)生變更時(shí),原本無辜的調(diào)用方也會(huì)受牽連改動(dòng) 。
代碼編程教學(xué)入門 代碼怎么編寫


c. 時(shí)間性內(nèi)聚
時(shí)間內(nèi)聚,指一個(gè)模塊內(nèi)的組件除了在同一時(shí)間都會(huì)被執(zhí)行外,相互之間沒有任何關(guān)聯(lián) 。
代碼編程教學(xué)入門 代碼怎么編寫


d. 過程性內(nèi)聚
過程內(nèi)聚,指一個(gè)模塊內(nèi)的組件以特定次序被執(zhí)行,但相互之間沒有數(shù)據(jù)傳遞 。
e. 通信性內(nèi)聚
通信內(nèi)聚,指一個(gè)模塊內(nèi)的組件以特定次序被執(zhí)行,且相互之間傳遞和操作相同的數(shù)據(jù) 。
代碼編程教學(xué)入門 代碼怎么編寫


f. 順序性內(nèi)聚
順序內(nèi)聚,指一個(gè)模塊內(nèi)的元素以特定次序被執(zhí)行,且上一步的輸出被下一元素所依賴 。
代碼編程教學(xué)入門 代碼怎么編寫


g. 功能性內(nèi)聚
功能內(nèi)聚,指一個(gè)模塊內(nèi)所有組件屬于一個(gè)整體,完成同一個(gè)不可切分的功能,彼此缺一不可 。
四、設(shè)計(jì)原則
設(shè)計(jì)原則,是指導(dǎo)我們?nèi)绾卧O(shè)計(jì)出低耦合、高內(nèi)聚的代碼,讓代碼能夠更好的應(yīng)對(duì)變化,從而降本提效 。
設(shè)計(jì)原則的關(guān)鍵,是從使用方的角度看提供方的設(shè)計(jì),一句話概括就是:請(qǐng)不要要我知道太多,你可以改,但請(qǐng)不要影響我 。
4.1 單一職責(zé)原則(SRP)
定義:一個(gè)函數(shù)/類只能因?yàn)橐粋€(gè)理由被修改 。
單一職責(zé)原則,是所有原則中看起來最容易理解的,但是真正做到并不簡(jiǎn)單 。因?yàn)樽裱@一原則最關(guān)鍵是職責(zé)的劃分 。
職責(zé)的劃分至少要回答兩個(gè)基本問題:
  • 什么是你,什么是我?
  • 什么事情歸你管,什么事情歸我管?
且不說寫代碼,工作中我們也會(huì)出現(xiàn)人人不管或相爭(zhēng)的重疊地帶,劃分清楚職責(zé)看起容易,實(shí)際很難 。
4.2 開閉原則(OCP)
定義:對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉(不修改代碼就可以增加新功能) 。
要理解開閉原則,關(guān)鍵是要理解定義中隱含著的兩個(gè)主語,“使用方”和“提供方”,即:

推薦閱讀