什麼是高內聚、低耦合?
起因:模組獨立性指每個模組只完成系統要求的獨立子功能,並且與其他模組的聯絡最少且介面簡單,兩個定性的度量標準――耦合性和內聚性。
耦合性也稱塊間聯絡。指軟體系統結構中各模組間相互聯絡緊密程度的一種度量。模組之間聯絡越緊密,其耦合性就越強,模組的獨立性則越差。模組間耦合高低取決於模組間介面的複雜性、呼叫的方式及傳遞的資訊。
耦合性分類(低――高): 無直接耦合;資料耦合;標記耦合;控制耦合;公共耦合;內容耦合;
1 無直接耦合:
2 資料耦合: 指兩個模組之間有呼叫關係,傳遞的是簡單的資料值,相當於高階語言的值傳遞;
3 標記耦合: 指兩個模組之間傳遞的是資料結構,如高階語言中的陣列名、記錄名、檔名等這些名字即標記,其實傳遞的是這個資料結構的位址;
4 控制耦合: 指乙個模組呼叫另乙個模組時,傳遞的是控制變數(如開關、標誌等),被調模組通過該控制變數的值有選擇地執行塊內某一功能;
5 公共耦合: 指通過乙個公共資料環境相互作用的那些模組間的耦合。公共耦合的複雜程式隨耦合模組的個數增加而增加。
6 內容耦合: 這是最高程度的耦合,也是最差的耦合。當乙個模組直接使用另乙個模組的內部資料,或通過非正常入口而轉入另乙個模組內部。
內聚性又稱塊內聯絡。指模組的功能強度的度量,即乙個模組內部各個元素彼此結合的緊密程度的度量。若乙個模組內各元素(語名之間、程式段之間)聯絡的越緊密,則它的內聚性就越高。 內聚性匪類(低――高): 偶然內聚;邏輯內聚;時間內聚;通訊內聚;順序內聚;功能內聚;
1 偶然內聚: 指乙個模組內的各處理元素之間沒有任何聯絡。
2 邏輯內聚: 指模組內執行幾個邏輯上相似的功能,通過引數確定該模組完成哪乙個功能。
3 時間內聚: 把需要同時執行的動作組合在一起形成的模組為時間內聚模組。
4 通訊內聚: 指模組內所有處理元素都在同乙個資料結構上操作(有時稱之為資訊內聚),或者指各處理使用相同的輸入資料或者產生相同的輸出資料。
6 功能內聚: 這是最強的內聚,指模組內所有元素共同完成乙個功能,缺一不可。與其他模組的耦合是最弱的。
耦合性與內聚性是模組獨立性的兩個定性標準,將軟體系統劃分模組時,盡量做到高內聚低耦合,提高模組的獨立性,為設計高質量的軟體結構奠定基礎。
有個例子很容易明白:乙個程式有50個函式,這個程式執行得非常好;然而一旦你修改其中乙個函式,其他49個函式都需要做修改,這就是高耦合的後果。 一旦你理解了它,你編寫概要設計的時候設計類或者模組自然會考慮到「高內聚,低耦合」。
高內聚,低耦合
大家都在說高內聚,低耦合。問題是什麼是高內聚?什麼是低耦合?那它們的作用是什麼?先來談談什麼是耦合,耦合就是不同模組之間粘稠的程度。耦合度高證明你的模組之間粘稠,不好剝離模組功能。造成後續修改難度加大,所謂 動一發而牽全身 當你的 粘稠在一起的時候,就代表你的 需要重寫了。那麼避免這些個事情的發生,...
高內聚,低耦合
內聚,更為專業的說法叫功能內聚,是對軟體系統中元素職責相關性和集中度的度量。如果元素具有高度相關的職責,除了這些職責內的任務,沒有其它過多的工作,那麼該元素就具有高內聚性,反之則為低內聚性。其實結合oop的思想,高內聚應該是更加趨向於介面化,工廠模式可以很容易體現這種思想。即方法呼叫,只要通過相應的...
高內聚低耦合
明確一點,乙個程式如果是高內聚零耦合會是最完美的,但是沒有絕對的零耦合。也就不存在什麼完美的程式了。1 什麼是高內聚 低耦合?首先了解什麼是內聚 耦合 1.1.1內聚性 每乙個程式中可能會按照不同功能,將整個 段劃分為不同的模組,每乙個模組內部元素彼此之間會有某些聯絡,此種聯絡就是內聚性。同乙個模組...