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{
}