【MERMAID】UML 統一建模語言 —— 類圖
阿新 • • 發佈:2021-02-12
技術標籤:我記得你的笑臉,午後陽光般的溫暖javaclass
願你如陽光,明媚不憂傷。
目録
1. UML 概述
UML (Unified Modeling Language)統一建模語言,是一種為面向物件系統的產品進行說明、視覺化和編制文件的一種標準語言,是非專利的第三代建模和規約語言,獨立於任何具體程式設計語言。UML立足於對事物的實體、性質、關係、結構、狀態和動態變化過程的全程描述和反映,可以從不同角度描述人們所觀察到的軟體檢視,也可以描述在不同開發階段中的軟體形態
。採用一組圖形符號來描述軟體模型,這些圖形符號具有簡單、直觀和規範的特點,開發人員學習和掌握起來比較簡單。所描述的軟體模型,可以直觀地理解和閱讀,由於具有規範性,所以能夠保證模型的準確、一致。
2. 類成員的可見性及返回值型別
------------------------------------------------------
・【語法】
+ Public 公共
- Private 私有
# Protected 保護
~ Package/Internal 包 / 內部
------------------------------------------ ------------
・【示例】
class Duck{
String beakColor
+boolean swim()
-String quack()
#Object[] swim1()
~List~string~ quack1()
}
------------------------------------------------------
3. 類圖關係
------------------------------------------------------
・【語法】[classA][Arrow][ClassB]:LabelText
<|-- Inheritance 繼承
*-- Composition 組合
o-- Aggregation 聚合
--> Association 協作
-- Link (Solid) 連結(實線)
..> Dependency 依賴
..|> Realization 實現
.. Link (Dashed) 連結(虛線)
------------------------------------------------------
・【示例】
classDiagram
classA --|> classB : Inheritance
classC --* classD : Composition
classE --o classF : Aggregation
classG --> classH : Association
classI -- classJ : Link(Solid)
classK ..> classL : Dependency
classM ..|> classN : Realization
classO .. classP : Link(Dashed)
------------------------------------------------------
4. 關係的基數 / 多重性
------------------------------------------------------
・【語法】[classA] "cardinality1" [Arrow] "cardinality2" [ClassB]:LabelText
1 Only 1 一對一
0..1 Zero or One 0 或 1
1..* One or more ...
* Many ...
n n {where n>1} ...
0..n zero to n {where n>1} ...
1..n one to n {where n>1} ...
------------------------------------------------------
・【示例】
classDiagram
Customer "1" --> "*" Ticket
Student "1" --> "1..*" Course
Galaxy --> "many" Star : Contains
------------------------------------------------------
5. 類註釋
------------------------------------------------------
・【語法】[classA] class Class_name <<desc>> Class_name
OR 與類定義一起在巢狀結構中 <<desc>>
<<Interface>> 表示介面類
<<abstract>> 代表抽象類
<<Service>> 代表服務等級
<<enumeration>> 代表一個列舉
------------------------------------------------------
・【示例】
classDiagram
class Color
<<enumeration>> Color
class Color {
<<enumeration>>
RED
BLUE
GREEN
WHITE
BLACK
}
------------------------------------------------------
6. 完整示例
------------------------------------------------------
・【示例】
classDiagram
Class01 <|-- AveryLongClass : Cool
<<interface>> Class01
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
class Class10 {
>>service>>
int id
size()
}
------------------------------------------------------