泛化(
generalization)
圖表 1 泛化
在上圖中,空心的三角表示繼承關係(類繼承),在
uml的術語中,這種關係被稱為泛化(
generalization
)。person(人)
是基類,
teacher(教師)
、student(學生)
、guest(來賓)
是子類。
若在邏輯上b是a的「一種」,並且a的所有功能和屬性對b而言都有意義,則允許b繼承a的功能和屬性。
例如,教師是人,
teacher
是person
的「一種」(
a kind of
)。那麼類teacher可以從類person派生(繼承)。
如果a是基類,b是a的派生類,那麼b將繼承a的資料和函式。
若在邏輯上b是a的「一種」(a kind of ),則允許b繼承a的功能和屬性。
聚合(組合)
圖表 2 組合
若在邏輯上a是b的「一部分」(a part of),則不允許b從a派生,而是要用a和其它東西組合出b。
例如,眼(eye)、鼻(nose)、口(mouth)、耳(ear)是頭(head)的一部分,所以類head應該由類eye、nose、mouth、ear組合而成,不是派生(繼承)而成。
聚合的型別分為無、共享(聚合)、復合(組合)三類。
聚合(aggregation)
圖表 3 共享
上面圖中,有乙個菱形(空心)表示聚合(
aggregation
)(聚合型別為共享),聚合的意義表示
has-a
關係。聚合是一種相對鬆散的關係,聚合類
b不需要對被聚合的類
a負責。
組合(composition)
圖表 4 復合
這幅圖與上面的唯一區別是菱形為實心的,它代表了一種更為堅固的關係
——組合(
composition
)(聚合型別為復合)。組合表示的關係也是
has-a
,不過在這裡,
a的生命期受
b控制。即
a會隨著
b的建立而建立,隨
b的消亡而消亡。
依賴(dependency)
圖表 5 依賴 這裡b
與a的關係只是一種依賴
(dependency)
關係,這種關係表明,如果類
a被修改,那麼類
b會受到影響
UML依賴 泛化 關聯 聚合 組合 實現
結專案後再複習了一下依賴 泛化 關聯 聚合 組合 實現關係怎麼畫,箭頭的指向結合例項再次理解。1 依賴 虛線箭頭,有箭頭的那一項為被依賴關係 電視和遙控器為例,遙控器的開關變動使得電視機頻道發生了改變,乙個的改變引起另乙個的改變 2 關聯 實線箭頭,箭頭那端表示被引用的物件 3 泛化 空心三角 實線...
UML之泛化關係
在學習uml的時候,我想起來了 大話設計模式 這裡邊的一張類圖,把我給整懵了,腦袋裡出現了好幾個問號 1.到底什麼是泛化 繼承 關係?2.如何用圖精確表現泛化關係呢?泛化關係是類元的一般描述和具體描述之間的關係,具體描述建立在一般描述的基礎之上,並對其進行了擴充套件。具體描述完全擁有一般描述的特性 ...
泛化,實現,關聯,依賴
uml四大關係中,包括 泛化,實現,關聯,依賴。泛化就是我們在物件導向中提到的繼承,而實現則更多的體現在類和介面之間的關係。關聯和依賴相對於上邊兩個關係,則表現的不是很容易理解,所以我們今天來深入學習一下。它表示類與類之間的連線,它使得乙個類知道另乙個類的屬性和方法。關聯可以用單向箭頭表示單向關聯,...