一、内聚
1.定義
一個子產品内部各元素聚集、關聯的程度。
定義的範圍在一個子產品内部。一個高内聚子產品,應該恰好隻做一件事。高内聚就是子產品内各元素高度聚集、高度關聯。
2.特點
高内聚子產品具備較好的可靠性、可重用性、可讀性。
3.分類
功能内聚、順序内聚、.......、偶然内聚(排序由高内聚至低内聚)。
功能内聚——一個子產品内所有元素的存在都是為了完成同一個單一功能,子產品已不可再分,這是最高程度的内聚,也是我們進行軟體設計時想達到的效果。
......
偶然内聚——子產品内各元素之間沒有任何聯系,隻是偶然呗湊到一起,這是最低程度的内聚,進行軟體設計時應該避免。
二、耦合
1.定義
多個子產品之間關聯程度的度量。
定義範圍在多個子產品之間。耦合的程度取決于子產品間接口的複雜性、調用子產品的方式等。子產品間的聯系越多,耦合性越強,獨立性就越差。
2.特點
低耦合能減少子產品間的互相作用,防止修改某一子產品時引起的“牽一發動全身”效應。
3.分類
資料耦合、......、公共耦合(排序由低耦合至高耦合)。
資料耦合——調用子產品于被調用子產品之間隻傳遞簡單的資料項參數,類似函數傳參,是最低的耦合。
......
公共耦合——多個子產品通路同一個全局資料結構,最高的耦合。