1. 程式人生 > >什麼是耦合、解耦

什麼是耦合、解耦

一、耦合

1、耦合是指兩個或兩個以上的體系或兩種運動形式間通過相互作用而彼此影響以至聯合起來的現象。

2、在軟體工程中,物件之間的耦合度就是物件之間的依賴性。物件之間的耦合越高,維護成本越高,因此物件的設計應使類和構件之間的耦合最小。

3、分類:有軟硬體之間的耦合,還有軟體各模組之間的耦合。耦合性是程式結構中各個模組之間相互關聯的度量。它取決於各個模組之間的介面的複雜程度、呼叫模組的方式以及哪些資訊通過介面。

二、解耦

1、解耦,字面意思就是解除耦合關係。

2、在軟體工程中,降低耦合度即可以理解為解耦,模組間有依賴關係必然存在耦合,理論上的絕對零耦合是做不到的,但可以通過一些現有的方法將耦合度降至最低。

3、設計的核心思想:儘可能減少程式碼耦合,如果發現程式碼耦合,就要採取解耦技術。讓資料模型,業務邏輯和檢視顯示三層之間彼此降低耦合,把關聯依賴降到最低,而不至於牽一髮而動全身。原則就是A功能的程式碼不要寫在B的功能程式碼中,如果兩者之間需要互動,可以通過介面,通過訊息,甚至可以引入框架,但總之就是不要直接交叉寫。

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