StarUML使用
今天學習設計模式的時候需要畫UML類圖,所以來學習一下這個軟件
軟件界面
繪圖工具區
類組件的基本操作
功能介紹:
1. 用來標識Class的可見性(默認為public)
2. 用來添加note的,比如:類的說明
3. 增加類的屬性
4. 增加類的操作方法。
5. 增加模板參數
6. 增加子類
7. 增加父類
8. 添加已有的接口
9. 添加需要的接口
10. 添加關聯
11. 添加聚合
12. 添加組合
13. 添加端口
14. 添加部件
15.增加Recption
類的關系介紹
1.依賴
-
類中用到了對方
-
可以是類的成員屬性
-
可以是方法的返回值類型
-
可以是方法接受的參數類型
-
可以是方法中使用到
2.泛化(繼承)
-
泛化關系其實就是繼承關系
-
繼承關系用空心三角形+實線來表示
3.實現
注意:
- 一般情況下,實現接口用空心三角形+虛線來表示。
- starUML用的是棒棒糖表示法,可能看起來不是很直觀,但是確實是實現關系。
- PersonService為斜體,表示抽象。
4.關聯
關聯關系實際上就是類與類之間的聯系,他是依賴關系的特例。
關聯具有導航性,即雙向關系或單向關系
關聯具有多重性,如 "1"(表示有且只有一個),"0..."(0個或多個),"0,1"(表示0個或一個),"n...m"(表示n到m個都可以),
"m...*"(表示至少m個)
//單向一對一
class IdCard {
}
class Person {
private IdCard idCard;
}
//多向一對一
class IdCard {
private Person person;
}
class Person {
private IdCard idCard;
}
- 關聯關系用直線加箭頭實現
5.聚合
聚合關系表示的是整體和部分的關系,整體與部分可以分開。聚合關系是關聯關系的特例。聚合表示一種弱的擁有關系。
如:大雁是群居動物,每只大雁都屬於一個雁群,一個雁群可以有多只大雁。所以它們之間就滿足聚合關系。
體現的是A對象可以包含B對象,但B對象不是A對象的一部分,是has a的關系
class WideGooseAggregate{
//在雁群WideGooseAggregate類中,有大雁數組對象arrayWideGoose
private WideGoose[] arrayWideGoose;
}
- 聚合關系用空心的菱形+實線箭頭來表示
6.組合(合成)
也是整體與部分的關系,但是整體與部分不可以分開。是一種強的擁有關系,體現了嚴格的部分和整體關系,部分和整體的生命周期一樣。
如:鳥和翅膀的關系,因為他們是部分和整體的關系,並且翅膀和鳥的生命周期是相同的,合成關系用實心的菱形+實線箭頭來表示。
class Bird{
private Wing wing;
public Bird(){
//在Bird類中,初始化時,實例化翅膀Wing,他們之間同時生成
wing = new Wing();
}
}
class wing{
}