內聚性
- 功能內聚。主要通過操作來體現。一個模塊只完成一組特定操作並返回結果。
- 分層內聚。由包、構件、類來體現。高層能夠訪問低層的服務,但低層不能訪問高層的服務。
- 通信內聚。訪問相同數據的所有操作被定義在一個類中。一般來說,這些類只着眼於數據的查詢、訪問和存儲。
耦合性
- 內容耦合。一個構件“暗中修改其他構件的內部數據”。
- 共用耦合。大量的構件都要使用同一個全局變量時。
- 控制耦合。當操作A調用操作B,並且向B傳遞控制標記時。(這種情況當B的一個不相關變更,往往導致A所傳遞的標記意義也必鬚髮生改變)
- 標記耦合。當類B被聲明爲類A的某一個操作的參數時。
- 數據耦合。當操作需要傳遞長串的數據參數時。
- 例程調用耦合。當一個操作調用另外一個操作時。(常見的耦合)
- 類型使用耦合。當構件A使用類構件B定義的一個數據類型時。
- 包含或者導入耦合。當構件A引入或者包含一個構件B的包或者內容時。
- 外部耦合。當一個構件和基礎設施構件(例如數據庫)進行通信和協作時。