耦合的定义
---------------------------個人的一些粗淺的認識------------------
?
耦合就是多個元件之間互相影響。
?
例如一個仿人機器人的胳膊,向前伸胳膊時就不能往胸前靠(達不到電機的極大值),因為胸前有一個硬殼膈應著,如果向后就可以多運動10度,那么機器人前后的自由度和左右的自由度就是耦合的,兩者是相互影響的。
?
例如在做SLAM時,定位和地圖繪制就是一個互相耦合的對象。如果沒有一個粗略的地圖根本就無法去定位,但如果沒有一個運動攝像頭的實時不斷“定位”也不可能可以繪制出一張“地圖”。
?
現在遇到的耦合大概就這兩個吧,感覺是在很多領域都會有應用場景的詞,先碼一下提升下逼格。
?
------------------------------度娘的解釋---------------------------------------
耦合是指兩個或兩個以上的電路元件或電網絡等的輸入與輸出之間存在緊密配合與相互影響,并通過相互作用從一側向另一側傳輸能量的現象。
耦合作為名詞在通信工程、軟件工程、機械工程等工程中都有相關名詞術語。
?
簡單地說,軟件工程中對象之間的耦合度就是對象之間的依賴性。指導使用和維護對象的主要問題是對象之間的多重依賴性。對象之間的耦合越高,維護成本越高。因此對象的設計應使類和構件之間的耦合最小。
有軟硬件之間的耦合,還有軟件各模塊之間的耦合。
耦合性是程序結構中各個模塊之間相互關聯的度量。它取決于各個模塊之間的接口的復雜程度、調用模塊的方式以及哪些信息通過接口。
耦合可以分為以下幾種,它們之間的耦合度由高到低排列如下:
(1)內容耦合。當一個模塊直接修改或操作另一個模塊的數據時,或一個模塊不通過正常入口而轉入另一個模塊時,這樣的耦合被稱為內容耦合。內容耦合是最高程度的耦合,應該避免使用之。
(2)公共耦合。兩個或兩個以上的模塊共同引用一個全局數據項,這種耦合被稱為公共耦合。在具有大量公共耦合的結構中,確定究竟是哪個模塊給全局變量賦了一個特定的值是十分困難的。
(3)外部耦合。一組模塊都訪問同一全局簡單變量而不是同一全局數據結構,而且不是通過參數表傳遞該全局變量的信息,則稱之為外部耦合。
(4)控制耦合。一個模塊通過接口向另一個模塊傳遞一個控制信號,接受信號的模塊根據信號值而進行適當的動作,這種耦合被稱為控制耦合。
(5)標記耦合。若一個模塊A通過接口向兩個模塊B和C傳遞一個公共參數,那么稱模塊B和C之間存在一個標記耦合。
(6)數據耦合。模塊之間通過參數來傳遞數據,那么被稱為數據耦合。數據耦合是最低的一種耦合形式,系統中一般都存在這種類型的耦合,因為為了完成一些有意義的功能,往往需要將某些模塊的輸出數據作為另一些模塊的輸入數據。
(7)非直接耦合。兩個模塊之間沒有直接關系,它們之間的聯系完全是通過主模塊的控制和調用來實現的。
總結:耦合是影響軟件復雜程度和設計質量的一個重要因素,在設計上我們應采用以下原則:如果模塊間必須存在耦合,就盡量使用數據耦合,少用控制耦合,限制公共耦合的范圍,盡量避免使用內容耦合。
?
?
多學習提升逼格,233
總結
- 上一篇: IP地址概述及作用
- 下一篇: SQLiteHelper帮助类