更新時間:2021-05-13 來源:黑馬程序員 瀏覽量:
物理學上指兩個或兩個以上的體系或兩種運動形式間通過相互作用而彼此影響以至聯合起來的現象。如放大器級與級之間信號的逐級放大量通過阻容耦合或變壓器耦合;兩個線圈之間的互感是通過磁場的耦合。
兩個或兩個以上的電路構成一個網絡時,若其中某一電路中電流或電壓發生變化,能影響到其他電路也發生類似的變化,這種網絡叫做耦合電路。耦合的作用就是把某一電路的能量輸送(或轉換)到其他的電路中去,就是指能量從一個介質(例如一個金屬線、光導纖維)傳播到另一種介質的過程。
在工程中,對象之間的耦合度就是對象之間的依賴性。對象之間的耦合越高,維護成本越高,因此對象的設計應使類和構件之間的耦合最小。
耦合的分類
分類:有軟硬件之間的耦合,還有軟件各模塊之間的耦合。耦合性是程序結構中各個模塊之間相互關聯的度量。它取決于各個模塊之間的接口的復雜程度、調用模塊的方式以及哪些信息通過接口。
解耦
1、解耦,字面意思就是解除耦合關系。
2、在軟件工程中,降低耦合度即可以理解為解耦,模塊間有依賴關系必然存在耦合,理論上的絕對零耦合是做不到的,但可以通過一些現有的方法將耦合度降至最低。
3、設計的核心思想:盡可能減少代碼耦合,如果發現代碼耦合,就要采取解耦技術。讓數據模型,業務邏輯和視圖顯示三層之間彼此降低耦合,把關聯依賴降到最低,而不至于牽一發而動全身。原則就是A功能的代碼不要寫在B的功能代碼中,如果兩者之間需要交互,可以通過接口,通過消息,甚至可以引入框架,但總之就是不要直接交叉寫。
4、觀察者模式:觀察者模式存在的意義就是「解耦」,它使觀察者和被觀察者的邏輯不再攪在一起,而是彼此獨立、互不依賴。比如網易新聞的夜間模式,當用戶切換成夜間模式之后,被觀察者會通知所有的觀察者「設置改變了,大家快蒙上遮罩吧」。QQ消息推送來了之后,既要在通知欄上彈個推送,又要在桌面上標個小紅點,也是觀察者與被觀察者的巧妙配合。
猜你喜歡: