低耦合的重要性,低耦合重要性

來源:互聯網
上載者:User

低耦合的重要性,低耦合重要性

今天調試修複一個bug時,發現一個變數在兩個功能模組中起著同樣的作用,又因為每次完成任務後並沒重設,在初始化時,不夠嚴謹造成的問題,問題沒有多難,只是調試時候特糾結兩個地方都有代碼需要去看,瞭解,改了會不會有問題,比較費時,然後猛然意識到耦合的這個問題,確實很重要,站在巨人的肩上,之前不懂這麼說的到底什麼意義,然後今天突然有所發現,謹記謹記!!!

耦合
簡單地說,軟體工程中對象之間的耦合度就是對象之間的依賴性。指導使用和維護對象的主要問題是對象之間的多重依賴性。對象之間的耦合越高,維護成本越高。因此對象的設計應使類和構件之間的耦合最小。

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

耦合可以分為以下幾種,它們之間的耦合度由高到低排列如下:

內容耦合。當一個模組直接修改或操作另一個模組的資料時,或一個模組不通過正常入口而轉入另一個模組時,這樣的耦合被稱為內容耦合。內容耦合是最高程度的耦合,應該避免使用之。
公用耦合。兩個或兩個以上的模組共同引用一個全域資料項,這種耦合被稱為公用耦合。在具有大量公用耦合的結構中,確定究竟是哪個模組給全域變數賦了一個特定的值是十分困難的。
外部耦合 。一組模組都訪問同一全域簡單變數而不是同一全域資料結構,而且不是通過參數表傳遞該全域變數的資訊,則稱之為外部耦合。
控制耦合 。一個模組通過介面向另一個模組傳遞一個控制訊號,接受訊號的模組根據訊號值而進行適當的動作,這種耦合被稱為控制耦合。
標記耦合 。若一個模組A通過介面向兩個模組B和C傳遞一個公用參數,那麼稱模組B和C之間存在一個標記耦合。
資料耦合。模組之間通過參數來傳遞資料,那麼被稱為資料耦合。資料耦合是最低的一種耦合形式,系統中一般都存在這種類型的耦合,因為為了完成一些有意義的功能,往往需要將某些模組的輸出資料作為另一些模組的輸入資料。
非直接耦合 。兩個模組之間沒有直接關係,它們之間的聯絡完全是通過主模組的控制和調用來實現的。
總結
耦合是影響軟體複雜程度和設計品質的一個重要因素,在設計上我們應採用以下原則:如果模組間必須存在耦合,就盡量使用資料耦合,少用控制耦合,限制公用耦合的範圍,盡量避免使用內容耦合。

內聚與耦合

內聚標誌一個模組內各個元素彼此結合的緊密程度,它是資訊隱蔽和局部化概念的自然擴充。內聚是從功能角度來度量模組內的聯絡,一個好的內聚模組應當恰好做一件事。它描述的是模組內的功能聯絡。
耦合是軟體結構中各模組之間相互串連的一種度量,耦合強弱取決於模組間介面的複雜程度、進入或訪問一個模組的點以及通過介面的資料。 程式講究的是低耦合,高內聚。就是同一個模組內的各個元素之間要高度緊密,但是各個模組之間的相互依存度卻要不那麼緊密。
內聚和耦合是密切相關的,同其他模組存在高耦合的模組意味著低內聚,而高內聚的模組意味著該模組同其他模組之間是低耦合。在進行軟體設計時,應力爭做到高內聚,低耦合。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。 http://blog.csdn.net/Barnettdove/article/details/78977882

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.