天天看點

軟體設計中的高内聚、低耦合

一、内聚

1.定義

    一個子產品内部各元素聚集、關聯的程度。

    定義的範圍在一個子產品内部。一個高内聚子產品,應該恰好隻做一件事。高内聚就是子產品内各元素高度聚集、高度關聯。

2.特點

    高内聚子產品具備較好的可靠性、可重用性、可讀性。

3.分類

    功能内聚、順序内聚、.......、偶然内聚(排序由高内聚至低内聚)。

    功能内聚——一個子產品内所有元素的存在都是為了完成同一個單一功能,子產品已不可再分,這是最高程度的内聚,也是我們進行軟體設計時想達到的效果。

    ......

    偶然内聚——子產品内各元素之間沒有任何聯系,隻是偶然呗湊到一起,這是最低程度的内聚,進行軟體設計時應該避免。

二、耦合

1.定義

    多個子產品之間關聯程度的度量。

    定義範圍在多個子產品之間。耦合的程度取決于子產品間接口的複雜性、調用子產品的方式等。子產品間的聯系越多,耦合性越強,獨立性就越差。

2.特點

    低耦合能減少子產品間的互相作用,防止修改某一子產品時引起的“牽一發動全身”效應。

3.分類

    資料耦合、......、公共耦合(排序由低耦合至高耦合)。

    資料耦合——調用子產品于被調用子產品之間隻傳遞簡單的資料項參數,類似函數傳參,是最低的耦合。

    ......

    公共耦合——多個子產品通路同一個全局資料結構,最高的耦合。

繼續閱讀