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]()

声明:该文章系转载,转载该文章的目的在于更广泛的传递信息,并不代表本网站赞同其观点,文章内容仅供参考。

本站是一个个人学习和交流平台,网站上部分文章为网站管理员和网友从相关媒体转载而来,并不用于任何商业目的,内容为作者个人观点, 并不代表本网站赞同其观点和对其真实性负责。

我们已经尽可能的对作者和来源进行了通告,但是可能由于能力有限或疏忽,导致作者和来源有误,亦可能您并不期望您的作品在我们的网站上发布。我们为这些问题向您致歉,如果您在我站上发现此类问题,请及时联系我们,我们将根据您的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。