高內聚、低耦合

來源:互聯網
上載者:User
什麼是高內聚、低耦合?    起因:模組獨立性指每個模組只完成系統要求的獨立子功能,並且與其他模組的聯絡最少且介面簡單,兩個定性的度量標準――耦合性和內聚性。    耦合性也稱塊間聯絡。指軟體系統結構中各模組間相互聯絡緊密程度的一種度量。模組之間聯絡越緊密,其耦合性就越強,模組的獨立性則越差。模組間耦合高低取決於模組間介面的複雜性、調用的方式及傳遞的資訊。    耦合性分類(低――高): 無直接耦合;資料耦合;標記耦合;控制耦合;公用耦合;內容耦合;1 無直接耦合:2 資料耦合: 指兩個模組之間有調用關係,傳遞的是簡單的資料值,相當於進階語言的值傳遞;3 標記耦合: 指兩個模組之間傳遞的是資料結構,如進階語言中的數組名、記錄名、檔案名稱等這些名字即標記,其實傳遞的是這個資料結構的地址;4 控制耦合: 指一個模組調用另一個模組時,傳遞的是控制變數(如開關、標誌等),被調模組通過該控制變數的值有選擇地執行塊內某一功能;5 公用耦合: 指通過一個公用資料環境相互作用的那些模組間的耦合。公用耦合的複雜程式隨耦合模組的個數增加而增加。6 內容耦合: 這是最高程度的耦合,也是最差的耦合。當一個模組直接使用另一個模組的內部資料,或通過非正常入口而轉入另一個模組內部。     內聚性又稱塊內聯絡。指模組的功能強度的度量,即一個模組內部各個元素彼此結合的緊密程度的度量。若一個模組內各元素(語名之間、程式段之間)聯絡的越緊密,則它的內聚性就越高。
    內聚性匪類(低――高): 偶然內聚;邏輯內聚;時間內聚;通訊內聚;順序內聚;功能內聚;1 偶然內聚: 指一個模組內的各處理元素之間沒有任何聯絡。2 邏輯內聚: 指模組內執行幾個邏輯上相似的功能,通過參數確定該模組完成哪一個功能。3 時間內聚: 把需要同時執行的動作組合在一起形成的模組為時間內聚模組。4 通訊內聚: 指模組內所有處理元素都在同一個資料結構上操作(有時稱之為資訊內聚),或者指各處理使用相同的輸入資料或者產生相同的輸出資料。5 順序內聚: 指一個模組中各個處理元素都密切相關於同一功能且必須順序執行,前一功能元素輸出就是下一功能元素的輸入。6 功能內聚: 這是最強的內聚,指模組內所有元素共同完成一個功能,缺一不可。與其他模組的耦合是最弱的。     耦合性與內聚性是模組獨立性的兩個定性標準,將軟體系統劃分模組時,盡量做到高內聚低耦合,提高模組的獨立性,為設計高品質的軟體結構奠定基礎。     有個例子很容易明白:一個程式有50個函數,這個程式執行得非常好;然而一旦你修改其中一個函數,其他49個函數都需要做修改,這就是高耦合的後果。
一旦你理解了它,你編寫概要設計的時候設計類或者模組自然會考慮到“高內聚,低耦合”什麼是高內聚、低耦合?    起因:模組獨立性指每個模組只完成系統要求的獨立子功能,並且與其他模組的聯絡最少且介面簡單,兩個定性的度量標準――耦合性和內聚性。    耦合性也稱塊間聯絡。指軟體系統結構中各模組間相互聯絡緊密程度的一種度量。模組之間聯絡越緊密,其耦合性就越強,模組的獨立性則越差。模組間耦合高低取決於模組間介面的複雜性、調用的方式及傳遞的資訊。    耦合性分類(低――高): 無直接耦合;資料耦合;標記耦合;控制耦合;公用耦合;內容耦合;1 無直接耦合:2 資料耦合: 指兩個模組之間有調用關係,傳遞的是簡單的資料值,相當於進階語言的值傳遞;3 標記耦合: 指兩個模組之間傳遞的是資料結構,如進階語言中的數組名、記錄名、檔案名稱等這些名字即標記,其實傳遞的是這個資料結構的地址;4 控制耦合: 指一個模組調用另一個模組時,傳遞的是控制變數(如開關、標誌等),被調模組通過該控制變數的值有選擇地執行塊內某一功能;5 公用耦合: 指通過一個公用資料環境相互作用的那些模組間的耦合。公用耦合的複雜程式隨耦合模組的個數增加而增加。6 內容耦合: 這是最高程度的耦合,也是最差的耦合。當一個模組直接使用另一個模組的內部資料,或通過非正常入口而轉入另一個模組內部。     內聚性又稱塊內聯絡。指模組的功能強度的度量,即一個模組內部各個元素彼此結合的緊密程度的度量。若一個模組內各元素(語名之間、程式段之間)聯絡的越緊密,則它的內聚性就越高。
    內聚性匪類(低――高): 偶然內聚;邏輯內聚;時間內聚;通訊內聚;順序內聚;功能內聚;1 偶然內聚: 指一個模組內的各處理元素之間沒有任何聯絡。2 邏輯內聚: 指模組內執行幾個邏輯上相似的功能,通過參數確定該模組完成哪一個功能。3 時間內聚: 把需要同時執行的動作組合在一起形成的模組為時間內聚模組。4 通訊內聚: 指模組內所有處理元素都在同一個資料結構上操作(有時稱之為資訊內聚),或者指各處理使用相同的輸入資料或者產生相同的輸出資料。5 順序內聚: 指一個模組中各個處理元素都密切相關於同一功能且必須順序執行,前一功能元素輸出就是下一功能元素的輸入。6 功能內聚: 這是最強的內聚,指模組內所有元素共同完成一個功能,缺一不可。與其他模組的耦合是最弱的。     耦合性與內聚性是模組獨立性的兩個定性標準,將軟體系統劃分模組時,盡量做到高內聚低耦合,提高模組的獨立性,為設計高品質的軟體結構奠定基礎。     有個例子很容易明白:一個程式有50個函數,這個程式執行得非常好;然而一旦你修改其中一個函數,其他49個函數都需要做修改,這就是高耦合的後果。
一旦你理解了它,你編寫概要設計的時候設計類或者模組自然會考慮到“高內聚,低耦合”

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.