天天看點

連載23:軟體體系設計新方向:數學抽象、設計模式、系統架構與方案設計(簡化版)(袁曉河著)

圖的連通性

對一個圖 G=(V,E) 中的兩點 x 和y ,若存在交替的頂點和邊的序列Γ=(x=v0-e1-v1-e2-...-ek-(vk+1)=y) (在有向圖中要求有向邊vi−( vi+1)屬于E ),則兩點 x 和 y 是連通的。Γ是一條x到y的連通路徑,x和y分别是起點和終點。當 x = y 時,Γ 被稱為回路。如果通路 Γ 中的邊兩兩不同,則 Γ 是一條簡單通路,否則為一條複雜通路。如果圖 G 中每兩點間皆連通,則 G 是連通圖。

強連通圖:有向圖 G=(V,E) 中,若對于V中任意兩個不同的頂點 x和 y,都存在從x到 y以及從 y到 x的路徑,則稱 G是強連通圖。相應地有強連通分量的概念。強連通圖隻有一個強連通分量,即是其自身;非強連通的有向圖有多個強連分量。

單向連通圖:設G=<V,E>是有向圖,如果u->v意味着圖G至多包含一條從u到v的簡單路徑,則圖G為單連通圖。

弱連通圖:将有向圖的所有的有向邊替換為無向邊,所得到的圖稱為原圖的基圖。如果一個有向圖的基圖是連通圖,則有向圖是弱連通圖。

連載23:軟體體系設計新方向:數學抽象、設計模式、系統架構與方案設計(簡化版)(袁曉河著)

圖2-11

如圖2-11所示,對于連通來說,就是其耦合性,其中強連通的耦合性最高,而且存在循環依賴,單連通次之,其存在單向的多路耦合,在分層中可能就是跨層耦合,而我們追求的就是弱連通,這既能夠達到耦合性最低同時也有益于分層,并且可以獨立出元件分離使之成為基礎元件。是以如何通過重構來滿足其最優的耦合性,我們也可以利用尋找圖的弱連通的方法來達到我們的要求,同時也可以用這個弱連通作為标準,來評判系統的耦合程度。

繼續閱讀