設計模式-UML關系基礎
UML關系基礎
類之間的關系
泛化
類在繼承中表現為泛化和實作。
繼承關系為is-a的關系,兩個對象之間用is-a表示為繼承關系。
eg,自行車是車,貓是動物。
泛化關系用空心箭頭表示
如下圖。
A繼承自B
用空心箭頭表示A繼承自B
泛化關系表示為繼承抽象類。
抽象類可以繼承一個具體的類的。
抽象類可以被實體類繼承
抽象類可以被其他抽象類繼承
實作關系
實作關系用空心箭頭表示。
即指向C++中的抽象類(通過純虛函數實作),java中的接口,表示實作關系。
即,無法直接定義對象的都被成為抽象類。
即,在上方中A繼承自抽象類B
聚合關系
用帶空心的菱形箭頭的直線表示
A聚合到B上,B由A組成。
聚合關系表示實體對象之間的關系,表示整體由部分構成的語義。
一個部門由多個員工組成。為聚合關系。
與組合關系的差別,不是強依賴關系。即使整體不存在,部分依舊存在。
部門撤銷,人員不會消失,依舊存在。
組合關系
組合關系用帶實心的菱形箭頭表示。
A組成B,B由A組成。
組合關系強調強依賴的聚合關系。
整體不存在,則部分也将不存在。
公司不存在,那麼部門也将不存在。
關聯關系
關聯關系用一條直線表示,描述不同類的對象之間的結構關系。
一種靜态關系。
通常與運作狀态無關。
用于定義對象之間,天然的,靜态的結構。
乘車人和車票屬于關聯關系,學生和學校屬于關聯關系。
關聯關系預設不強調方向。如果強調方向,則A知道B,但是B不知道A
用成員變量來實作
依賴關系
用帶箭頭的虛線表示兩者之間的依賴關系。
A依賴B,描述一個對象在運作期間會用到另外一個對象的關系。
依賴關系展現在類的構造方法,以及類的方法的傳入參數。箭頭指向為調用關系。
依賴關系能讓對象知道,還能使用對方的方法和屬性。
時序圖
展示對象之間的互動細節,使用時序圖。
時序圖有對象,生命線,控制焦點,消息。
www.iming.info