泛化 實現 依賴和關聯的區別

2021-08-01 10:42:21 字數 1135 閱讀 1261

####簡介:

泛化(generalization)

實現(realization)

關聯(association)

聚合(aggregation)

組合(composition)

依賴(dependency)

關聯、組合、聚合、依賴關係比較 :

設計模式中組合(compose)和聚合(aggregate)的關係

定義:經常又叫做合成復用原則(composite reuseprinciple或crp),盡量使用物件組合,而不是繼承來達到復用的目的。

就是在乙個新的物件裡面使用一些已有的物件,使之成為新物件的一部分;新物件通過向這些物件的委派達到復用已有功能的目的。簡而言之,要盡量使用合成/聚合,盡量不要使用繼承。

原則分析:

1)在物件導向設計中,可以通過兩種基本方法在不同的環境中復用已有的設計和實現,即通過組合/聚合關係或通過繼承。

繼承復用:實現簡單,易於擴充套件。破壞系統的封裝性;從基類繼承而來的實現是靜態的,不可能在執行時發生改變,沒有足夠的靈活性;只能在有限的環境中使用。(「白箱」復用)

組合/聚合復用:耦合度相對較低,選擇性地呼叫成員物件的操作;可以在執行時動態進行。(「黑箱」復用)

2)組合/聚合可以使系統更加靈活,類與類之間的耦合度降低,乙個類的變化對其他類造成的影響相對較少,因此一般首選使用組合/聚合來實現復用;其次才考慮繼承,在使用繼承時,需要嚴格遵循黎克特制代換原則,有效使用繼承會有助於對問題的理解,降低複雜度,而濫用繼承反而會增加系統構建和維護的難度以及系統的複雜度,因此需要慎重使用繼承復用。

3)此原則和黎克特制代換原則氏相輔相成的,兩者都是具體實現"開-閉"原則的規範。違反這一原則,就無法實現"開-閉"原則

組合和聚合的概念:

組合

聚合

明白了合成和聚合關係,再來理解合成/聚合原則應該就清楚了。要避免在系統設計中出現,乙個類的繼承層次超過3次。如果這樣的話,可以考慮重構你的**,或者重新設計結構. 當然最好的辦法就是考慮使用合成/聚合原則。

泛化,實現,關聯,依賴

uml四大關係中,包括 泛化,實現,關聯,依賴。泛化就是我們在物件導向中提到的繼承,而實現則更多的體現在類和介面之間的關係。關聯和依賴相對於上邊兩個關係,則表現的不是很容易理解,所以我們今天來深入學習一下。它表示類與類之間的連線,它使得乙個類知道另乙個類的屬性和方法。關聯可以用單向箭頭表示單向關聯,...

泛化 依賴和關聯關係

1.泛化關係 泛化關係表現為類之間的繼承 介面之間繼承 類實現介面 表現 is a uml表示 繼承使用實線加上空心三角形 實現使用虛線加上空心三角形 2.依賴關係 表現為被依賴者為依賴者的區域性變數 表現 use a uml表示 使用虛線加上箭頭 3.關聯關係 是一種類之間的關係分為兩種,是全域性...

UML依賴 泛化 關聯 聚合 組合 實現

結專案後再複習了一下依賴 泛化 關聯 聚合 組合 實現關係怎麼畫,箭頭的指向結合例項再次理解。1 依賴 虛線箭頭,有箭頭的那一項為被依賴關係 電視和遙控器為例,遙控器的開關變動使得電視機頻道發生了改變,乙個的改變引起另乙個的改變 2 關聯 實線箭頭,箭頭那端表示被引用的物件 3 泛化 空心三角 實線...