1. 類
格式如圖,頂格表示類名,中間隔表示屬性,底格表示方法。
方法和屬性的可見性
符號 | 可見性 |
---|---|
+ | public |
- | private |
# | protected |
/ | derived |
~ | package |
2. 關係
2.1 Generalization(歸納)/Inheritance(繼承)
我不知道Generalization爲什麼要翻譯成泛化,個人覺得翻譯得太硬了,一般人還得進一步去查一下泛化又是啥意思。用一個生僻的名詞去解釋另一個單詞,我算是醉了。
2.2 Realization/Implementation(實現)
針對接口實現。
2.3 Association(關聯)
關聯關係使一個類知道另外一個類的屬性和方法。某個對象會長期的持有另一個對象的引用,關聯的兩個對象彼此間沒有任何強制性的約束,只要二者同意,可以隨時解除關係或是進行關聯,它們在生命期問題上沒有任何約定。被關聯的對象還可以再被別的對象關聯,所以關聯是可以共享的。 關聯有四種類型:單向型(uni-directional)、雙向型(bi-directional)、集合型(包括Composition和Aggregation)和自反型。
下圖中左邊爲單向關聯,右邊爲雙向關聯。通俗地解釋圖左的單向關聯就是,ClassA有成員變量ClassB,而ClassB裏沒有成員變量ClassA.一時找不到具體事例,就以ClassA和ClassB來代替了;右圖中表示一個消費者可有零到多個訂單,一個訂單對應一個消費者。構成型和集合型請看下文。
2.4 Dependency(依賴):
僅僅是使用關係,被依賴類出現在方法的形參、局部變量和返回值中。
2.5 Composition(構成)
有人翻譯成“組成”,個人覺得翻譯成“構成”更易理解。一個事物是另一個事物不可分割的一部分,例如發動機是車子的一部分。
2.6 Aggregation(集合)
有人翻譯成“聚合”,我這裏翻譯成“集合”。成分類可以不依賴集合類而單獨存在,可以具有各自的生命週期。
3. 多重性
關聯的修飾符
標識符 | 釋義 |
---|---|
0 | 無實例 |
0..1 | 無實例或者只有1個實例 |
1 | 只有1個實例 |
1..1 | 只有1個實例 |
0..* | 零個或多個實例 |
* | 零個或多個實例 |
1..* | 1個或多個實例 |