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

依賴和影響

對於抽象和繼承來說,其父類和子類的相互依賴是不對稱的,父類可以不依賴於或較弱依賴於子類,也就是說,其子類發生變化,對於父類來說,幾乎沒有影響,但是父類的變化對於子類來說,其影響就很大。

我們通過圖形來表達之後,我們將能夠進行置換特性的兩個實體之間進行連接,而這種連接稱其就在路徑具有“可達”,這種可達性其實就是一種具有連通的數學性質,其經過的連通數也多表示其連通密度越大,其關鍵通道的重要性就越強。
例如在下面所描述的繼承體系中,根據上面的定義,其類B比繼承於B的其他類C、D其連通的密度越大,說明類B的重要性就越強,因此,其B的變化對其他與之直接相連的類或者實體來說其影響就越大。

 

圖1-9


同時,如果B是一個連通密度大的類,那麼B依賴的其他類(一般是B繼承於某個接口或者類),那麼這個接口或者類對其繼承於B的類C、類D的影響是同樣大的,也就說其依賴性是可以傳遞的,只要都在連通線上,那麼最高的被繼承的接口或類,對整個繼承體系(不僅僅是其直接的子類)都將產生影響。
而對於使用引用方式也存在這種影響,如上圖中B對於A來說,就存在這種影響,一旦B發生變化,其A就要受到影響,其影響的效果與箭頭所指的位置相反。
上面我們在談到依賴接口的原因和置換有很大關係,但是,現實中我們也發現,對接口中虛函數的變化,其對周邊的影響更大,那我們爲什麼還要宣稱要依賴於接口編程嗎?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章