圖型樣式:
*類別節點
類別節點為一個矩形,橫切成上中下三個區格。
第一格: 類別名稱,內容除了類別名稱,還可以填入附加資訊。
第二格: 屬性宣告,包含類別內的所有屬性
第三格: 方法宣告,包含類別內的所有方法
有時候要顯示多個類別時,屬性宣告和方法宣告可以省略。
類別名稱
類別名稱的附加資訊如下
{abstract} : 表示類別是一個抽象類別。
{name:value}:用來描述類別的資訊,如果沒有value則是預設value為 true。
<<Stereotypes>>: Stereotype表示特殊意義,包含物件限制語言(Object Constraint Language, OCL),MVC Design Pattern。
例子有: <<Interface>>(OCL), <<Controller>>(MVC)等。
另外Interface有另外一種表示方式,就是一個圓圈,下面填Interface的名稱。
屬性宣告
屬性宣告有以下格式:
<存取範圍><屬性名稱>[[<數量>] [<順序性>]]:<型態>[=<初始值>]
-存取範圍:
public: +
protected: #
-存取範圍:
public: +
protected: #
package private: ~
private: -
-屬性名稱: 使用和Java程式語言中合法的識別字
-數量和順序性:
數字: 確定的數量
*: 零到多個
0..*: 零到多個
0..1:零到一個
1..*:一到多個
n..m:最少n個,最多m個。
順序: Unordered(不需要排序) Ordered(需要排序)
-型態:屬性的資料型態,使用八種基本型別(Primitive Data Types)或是類別名稱。(Primitive Data Types: byte, short, int, long, float, double, boolean, char)
-初始值: 可以選擇性的宣告,為屬性宣告一個合法的初始值。
例子: -email[1..3 unordered]:String
(UML屬性並沒有java final的宣告,通常是從屬性名稱去辨識,final變數都是全大寫中間夾底線)
在宣告最前面也可以用Stereotype來修飾,以表達這些屬性的特性。
private: -
-屬性名稱: 使用和Java程式語言中合法的識別字
-數量和順序性:
數字: 確定的數量
*: 零到多個
0..*: 零到多個
0..1:零到一個
1..*:一到多個
n..m:最少n個,最多m個。
順序: Unordered(不需要排序) Ordered(需要排序)
-型態:屬性的資料型態,使用八種基本型別(Primitive Data Types)或是類別名稱。(Primitive Data Types: byte, short, int, long, float, double, boolean, char)
-初始值: 可以選擇性的宣告,為屬性宣告一個合法的初始值。
例子: -email[1..3 unordered]:String
(UML屬性並沒有java final的宣告,通常是從屬性名稱去辨識,final變數都是全大寫中間夾底線)
在宣告最前面也可以用Stereotype來修飾,以表達這些屬性的特性。
方法宣告
方法宣告有以下格式:
<存取範圍><方法名稱>([<參數>]):<回傳型態>
-存取範圍: 和屬性宣告相同
-參數: 一個使用逗號分隔的清單,使用下列語法
[種類]<參數名稱>:<參數型態>
種類為可省略的宣告,但如果用[in]就表示是final的宣告。
在宣告最前面可以加Stereotype來修飾:
<<constructors>>: 建構式
<<accessors>>:讀取屬性的方法
<<mutators>>: 設定屬性的方法
<<methods>>:表示商業運算的方法
例子: +setName(name:String):void
另外:
1. 整個宣告加下底線表示static
2. 斜體字表示方法為abstract
<<constructors>>: 建構式
<<accessors>>:讀取屬性的方法
<<mutators>>: 設定屬性的方法
<<methods>>:表示商業運算的方法
例子: +setName(name:String):void
另外:
1. 整個宣告加下底線表示static
2. 斜體字表示方法為abstract
留言