什麼是耦合、解耦

一、耦合

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

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

3、分類:有軟硬件之間的耦合,還有軟件各模塊之間的耦合。耦合性是程序結構中各個模塊之間相互關聯的度量。它取決於各個模塊之間的接口的複雜程度、調用模塊的方式以及哪些信息通過接口。

二、解耦

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

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

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章