資源描述:
《高內聚低耦合.doc》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、高內聚低耦合1.什么是內聚?什么是耦合?內聚是從功能角度來度量模塊內的聯(lián)系,一個好的內聚模塊應當恰好做一件事。它描述的是模塊內的功能聯(lián)系;耦合是軟件結構中各模塊之間相互連接的一種度量,耦合強弱取決于模塊間接口的復雜程度、進入或訪問一個模塊的點以及通過接口的數(shù)據(jù)。耦合性也稱塊間聯(lián)系。指軟件系統(tǒng)結構中各模塊間相互聯(lián)系緊密程度的一種度量。模塊之間聯(lián)系越緊密,其耦合性就越強,模塊的獨立性則越差。模塊間耦合高低取決于模塊間接口的復雜性、調用的方式及傳遞的信息。2.內聚分為哪幾類?耦合分為哪幾類?內聚有如下的種類,它們之間的內聚度由弱到強排列如下:(1)偶然內聚。模塊中的代碼無法定義其不
2、同功能的調用。但它使該模塊能執(zhí)行不同的功能,這種模塊稱為巧合強度模塊。(2)邏輯內聚。這種模塊把幾種相關的功能組合在一起,每次被調用時,由傳送給模塊參數(shù)來確定該模塊應完成哪一種功能(3)時間內聚:把需要同時執(zhí)行的動作組合在一起形成的模塊為時間內聚模塊。高內聚低耦合1.什么是內聚?什么是耦合?內聚是從功能角度來度量模塊內的聯(lián)系,一個好的內聚模塊應當恰好做一件事。它描述的是模塊內的功能聯(lián)系;耦合是軟件結構中各模塊之間相互連接的一種度量,耦合強弱取決于模塊間接口的復雜程度、進入或訪問一個模塊的點以及通過接口的數(shù)據(jù)。耦合性也稱塊間聯(lián)系。指軟件系統(tǒng)結構中各模塊間相互聯(lián)系緊密程度的一種度
3、量。模塊之間聯(lián)系越緊密,其耦合性就越強,模塊的獨立性則越差。模塊間耦合高低取決于模塊間接口的復雜性、調用的方式及傳遞的信息。2.內聚分為哪幾類?耦合分為哪幾類?內聚有如下的種類,它們之間的內聚度由弱到強排列如下:(1)偶然內聚。模塊中的代碼無法定義其不同功能的調用。但它使該模塊能執(zhí)行不同的功能,這種模塊稱為巧合強度模塊。(2)邏輯內聚。這種模塊把幾種相關的功能組合在一起,每次被調用時,由傳送給模塊參數(shù)來確定該模塊應完成哪一種功能(3)時間內聚:把需要同時執(zhí)行的動作組合在一起形成的模塊為時間內聚模塊。(4)過程內聚:構件或者操作的組合方式是,允許在調用前面的構件或操作之后,馬上
4、調用后面的構件或操作,即使兩者之間沒有數(shù)據(jù)進行傳遞。(5)通信內聚:指模塊內所有處理元素都在同一個數(shù)據(jù)結構上操作(有時稱之為信息內聚),或者指各處理使用相同的輸入數(shù)據(jù)或者產(chǎn)生相同的輸出數(shù)據(jù)。(6)順序內聚:指一個模塊中各個處理元素都密切相關于同一功能且必須順序執(zhí)行,前一功能元素輸出就是下一功能元素的輸入。(7)功能內聚:這是最強的內聚,指模塊內所有元素共同完成一個功能,缺一不可。耦合可以分為以下幾種,它們之間的耦合度由高到低排列如下:(1)內容耦合:如果發(fā)生下列情形,兩個模塊之間就發(fā)生了內容耦合·一個模塊直接訪問另一個模塊的內部數(shù)據(jù)·一個模塊不通過正常入口轉到另一模塊內部;·
5、兩個模塊有一部分程序代碼重疊(只可能出現(xiàn)在匯編語言中);·一個模塊有多個入口。(2)公共耦合:若一組模塊都訪問同一個公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局數(shù)據(jù)結構、共享的通信區(qū)、內存的公共覆蓋區(qū)等。(3)外部耦合:一組模塊都訪問同一全局簡單變量而不是同一全局數(shù)據(jù)結構,而且不是通過參數(shù)表傳遞該全局變量的信息,則稱之為外部耦合。(4)控制耦合:如果一個模塊通過傳送開關、標志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合(5)標記耦合:一組模塊通過參數(shù)表傳遞記錄信息,就是標記耦合。這個記錄是某一數(shù)據(jù)結構的子結構,而不是簡單變量。其實傳遞
6、的是這個數(shù)據(jù)結構的地址;也就是地址傳遞。?(6)數(shù)據(jù)耦合:指兩個模塊之間有調用關系,傳遞的是簡單的數(shù)據(jù)值,一個模塊訪問另一個模塊時,彼此之間是通過簡單數(shù)據(jù)參數(shù)(不是控制參數(shù)、公共數(shù)據(jù)結構或外部變量)來交換輸入、輸出信息的,相當于高級語言的值傳遞。(7)非直接耦合:兩個模塊之間沒有直接關系,它們之間的聯(lián)系完全是通過主模塊的控制和調用來實現(xiàn)的。耦合強度,依賴于以下幾個因素:(1)一個模塊對另一個模塊的調用;(2)一個模塊向另一個模塊傳遞的數(shù)據(jù)量;(3)一個模塊施加到另一個模塊的控制的多少;(4)模塊之間接口的復雜程度。1、耦合、內聚的評估標準是強度,耦合越弱越好,內聚越強越好;2
7、、所謂過度指的是由于錯誤理解導致的效果相反的設計;3、耦合指的模塊之間的關系,最弱的耦合設計是通過一個主控模塊來協(xié)調n個模塊之間的運作。還是舉一個我舉過的例子:客戶要求在界面上增加一個字段,你的項目要修改幾個地方呢?如果你只要修改項目文檔,那么你的開發(fā)構架就是最低強度的耦合,而這種設計成熟的開發(fā)團隊都已經(jīng)做到了,他們使用開發(fā)工具通過項目模型驅動數(shù)據(jù)庫和各層次的代碼,而不是直接修改那些代碼;4、內聚指的是模塊內部的功能,最強的內聚就是功能單一到不能拆分,也就是原子化,5、所以強內聚和弱耦合是相輔相成的,一