StarUML使用与类之间的关系

StarUML使用

今天学习设计模式的时候需要画UML类图,所以来学习一下这个软件

软件界面

image-20200920100555322

绘图工具区

image-20200920101009077

类组件的基本操作

image-20200920101551629

功能介绍:

1. 用来标识Class的可见性(默认为public)
2. 用来添加note的,比如:类的说明
3. 增加类的属性
4. 增加类的操作方法。
5. 增加模板参数
6. 增加子类
7. 增加父类
8. 添加已有的接口
9. 添加需要的接口
10. 添加关联
11. 添加聚合
12. 添加组合
13. 添加端口
14. 添加部件
15.增加Recption

类的关系介绍

1.依赖

image-20200920102631210

  • 类中用到了对方

  • 可以是类的成员属性

  • 可以是方法的返回值类型

  • 可以是方法接受的参数类型

  • 可以是方法中使用到

2.泛化(继承)

image-20200920103103551

  • 泛化关系其实就是继承关系

  • 继承关系用空心三角形+实线来表示

3.实现

image-20200920103813373

注意:

  • 一般情况下,实现接口用空心三角形+虚线来表示。
  • 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;
}

image-20200920110637480

  • 关联关系用直线加箭头实现

5.聚合

聚合关系表示的是整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例。聚合表示一种弱的拥有关系。

如:大雁是群居动物,每只大雁都属于一个雁群,一个雁群可以有多只大雁。所以它们之间就满足聚合关系。

体现的是A对象可以包含B对象,但B对象不是A对象的一部分,是has a的关系

class WideGooseAggregate{
    //在雁群WideGooseAggregate类中,有大雁数组对象arrayWideGoose
    private WideGoose[] arrayWideGoose;
}

image-20200920110928796

  • 聚合关系用空心的菱形+实线箭头来表示

6.组合(合成)

也是整体与部分的关系,但是整体与部分不可以分开。是一种强的拥有关系,体现了严格的部分和整体关系,部分和整体的生命周期一样。

如:鸟和翅膀的关系,因为他们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的,合成关系用实心的菱形+实线箭头来表示。

class Bird{
    private Wing wing;
    public Bird(){
        //在Bird类中,初始化时,实例化翅膀Wing,他们之间同时生成
        wing = new Wing();
    }
}
class wing{
    
}

image-20200920111745536

原文地址:https://www.cnblogs.com/gttttttt/p/13699195.html