天天看點

UML的術語-泛化,組合,依賴

泛化(Generalization)

UML的術語-泛化,組合,依賴

圖表 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的資料和函數。

如果類A和類B毫不相關,不可以為了使B的功能更多些而讓B繼承A的功能和屬性。

若在邏輯上B是A的“一種”(a kind of ),則允許B繼承A的功能和屬性。

聚合(組合)

UML的術語-泛化,組合,依賴

圖表 2 組合

若在邏輯上A是B的“一部分”(a part of),則不允許B從A派生,而是要用A和其它東西組合出B。

例如,眼(Eye)、鼻(Nose)、口(Mouth)、耳(Ear)是頭(Head)的一部分,是以類Head應該由類Eye、Nose、Mouth、Ear組合而成,不是派生(繼承)而成。

聚合的類型分為無、共享(聚合)、複合(組合)三類。

聚合(aggregation)

UML的術語-泛化,組合,依賴

圖表 3 共享

上面圖中,有一個菱形(空心)表示聚合(aggregation)(聚合類型為共享),聚合的意義表示has-a關系。聚合是一種相對松散的關系,聚合類B不需要對被聚合的類A負責。

組合(composition)

UML的術語-泛化,組合,依賴

圖表 4 複合

這幅圖與上面的唯一差別是菱形為實心的,它代表了一種更為堅固的關系——組合(composition)(聚合類型為複合)。組合表示的關系也是has-a,不過在這裡,A的生命期受B控制。即A會随着B的建立而建立,随B的消亡而消亡。

依賴(Dependency)

UML的術語-泛化,組合,依賴

圖表 5 依賴

這裡 B 與 A 的關系隻是一種依賴 (Dependency) 關系,這種關系表明,如果類 A 被修改,那麼類 B 會受到影響  

繼續閱讀