iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 23
0
自我挑戰組

打造專案管理 iOS App 系列 第 23

# 無限風光在險峰 UML,類圖

  • 分享至 

  • xImage
  •  

無限風光在險峰 UML,類圖


類圖的基本圖:

類圖是一個舉行框,它代表一個類。該類圖分為三層。

第一層是類的名稱。
第二層是類的特性,通常就是成員變量與屬性。
第三層是類的操作,通常就是方法或是函數。

類的繼承與氾類的繼承與泛化(Generalization)


表現形式:代三角箭頭的實線,箭頭指向父類別。
代碼表現:extends。

接口於實現 (Realization)


表現形式:代三角箭頭的虛線,箭頭指向接口,或是直線連接圓圈。
代碼表現:protocol。

依賴 (Dependency)


依賴關係:就是一個類的實現,需要另一個類的協助。
最典型的代碼是 Import。

關聯(Association)

關聯關係:是一種擁有的關係,他使一個類擁有另一個類的屬性與方法。可以是雙向或是單向的。
代碼體現:成員變量。
箭頭與指向:帶普通箭頭的實心線,指向被擁有者。

聚合(Aggregation)

聚合關係:指整體與部分的關係,且部分可以離開整體且單獨存在。如車與輪胎是整體和部分的關係。輪胎離開車仍然可以存在。
代碼體現:成員變量。
箭頭與指向:帶空心菱形的實心線,菱形指向整體。

組合(Composition)

聚合關係:指整體與部分的關係,但部分不可以離開整體而單獨存在。
代碼體現:成員變量。
箭頭與指向:帶實心菱形的實心線,菱形指向整體。


類圖練習


首先創建一個類(Animal)。

創建第二個類(Water)。

動物需要喝水,就需要方法,而這個方法必須要有一個參數,這個參數的type是Water。

動物依賴(dependency)於水。拉出一個虛線的箭頭,代表這個動物,是依賴於水的。

建立出Mammal與Bird兩個類別,他們繼承於(Generalization) Animal。

鳥要飛,需要翅膀。建立出一個翅膀的類別。

bird有一個變量,翅膀。這個翅膀的Type是Wing。

翅膀和鳥是一種組合關係(Composition),因為翅膀的存在,如果沒有鳥是沒有任何意義的。

建立一個鴨子的類別,繼承於Bird。

建立一個唐老鴨,他繼承於鴨子。

建立兩個interface,讓唐老鴨去實現(Realization) 它。眼前是兩種實現接頭的表現。

建立兩個類別,?與?,繼承於哺乳類。

這兩個動物是關聯(Association),的關係。

狼群與狼是一種聚合(Aggregation)關係。


總結:類關係強弱對比

泛化 = 實現 > 組合 > 聚合 > 關聯 > 依賴

組合關係是關聯關係的一種,是比聚合關係還要強的關係,他要求普通的聚合關係中代表整體對象負責代表負責代表部分的對象的生命週期。
聚合關係是關聯關係的一種,部分與整體的生命週期不一定相同。
關聯只是表示兩個類之前有交互。
依賴完全與生命週期無關。


上一篇
無限風光在險峰 UML簡介,為什麼要建模?
下一篇
無限風光在險峰 Git Flow 怎麼用?為什麼要用Git
系列文
打造專案管理 iOS App 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言