首頁(yè)技術(shù)文章正文

耦合是什么意思?如何理解程序員所說的耦合?

更新時(shí)間:2021-05-13 來源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif

物理學(xué)中的“耦合”是什么意思?

物理學(xué)上指兩個(gè)或兩個(gè)以上的體系或兩種運(yùn)動(dòng)形式間通過相互作用而彼此影響以至聯(lián)合起來的現(xiàn)象。如放大器級(jí)與級(jí)之間信號(hào)的逐級(jí)放大量通過阻容耦合或變壓器耦合;兩個(gè)線圈之間的互感是通過磁場(chǎng)的耦合。

電路中的“耦合”是什么意思?

兩個(gè)或兩個(gè)以上的電路構(gòu)成一個(gè)網(wǎng)絡(luò)時(shí),若其中某一電路中電流或電壓發(fā)生變化,能影響到其他電路也發(fā)生類似的變化,這種網(wǎng)絡(luò)叫做耦合電路。耦合的作用就是把某一電路的能量輸送(或轉(zhuǎn)換)到其他的電路中去,就是指能量從一個(gè)介質(zhì)(例如一個(gè)金屬線、光導(dǎo)纖維)傳播到另一種介質(zhì)的過程。

程序員所說的“耦合”和“解耦”

在工程中,對(duì)象之間的耦合度就是對(duì)象之間的依賴性。對(duì)象之間的耦合越高,維護(hù)成本越高,因此對(duì)象的設(shè)計(jì)應(yīng)使類和構(gòu)件之間的耦合最小。

耦合的分類

分類:有軟硬件之間的耦合,還有軟件各模塊之間的耦合。耦合性是程序結(jié)構(gòu)中各個(gè)模塊之間相互關(guān)聯(lián)的度量。它取決于各個(gè)模塊之間的接口的復(fù)雜程度、調(diào)用模塊的方式以及哪些信息通過接口。

解耦

1、解耦,字面意思就是解除耦合關(guān)系。

2、在軟件工程中,降低耦合度即可以理解為解耦,模塊間有依賴關(guān)系必然存在耦合,理論上的絕對(duì)零耦合是做不到的,但可以通過一些現(xiàn)有的方法將耦合度降至最低。

3、設(shè)計(jì)的核心思想:盡可能減少代碼耦合,如果發(fā)現(xiàn)代碼耦合,就要采取解耦技術(shù)。讓數(shù)據(jù)模型,業(yè)務(wù)邏輯和視圖顯示三層之間彼此降低耦合,把關(guān)聯(lián)依賴降到最低,而不至于牽一發(fā)而動(dòng)全身。原則就是A功能的代碼不要寫在B的功能代碼中,如果兩者之間需要交互,可以通過接口,通過消息,甚至可以引入框架,但總之就是不要直接交叉寫。

4、觀察者模式:觀察者模式存在的意義就是「解耦」,它使觀察者和被觀察者的邏輯不再攪在一起,而是彼此獨(dú)立、互不依賴。比如網(wǎng)易新聞的夜間模式,當(dāng)用戶切換成夜間模式之后,被觀察者會(huì)通知所有的觀察者「設(shè)置改變了,大家快蒙上遮罩吧」。QQ消息推送來了之后,既要在通知欄上彈個(gè)推送,又要在桌面上標(biāo)個(gè)小紅點(diǎn),也是觀察者與被觀察者的巧妙配合。



猜你喜歡:

BUG是什么意思?只有“漏洞”這一個(gè)意思嗎?

Java語(yǔ)言的特點(diǎn)是什么?

Zookeeper是什么?有哪些顯著特點(diǎn)?

黑馬程序員java培訓(xùn)課程

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!