@[TOC]
打开StarUML,它会自动给你一个类图的工作区,可以直接在上面操作。
实操图
我先上个图吧,对着图比较好说:
组件工具
左下角,有一堆的工具。
这些工具,单击表示单次使用,双击锁定,表示多次使用。
既然是类图,那就先来一个类。
单击Class,然后再屏幕上左健,不是拖出去的。
那个加号,“+”代表public,“-”代表private,“#”代表protect。
类组件介绍
- 用来标识Class的可见性(默认为public)
- 用来添加note的,比如:类的说明
- 增加类的属性
- 增加类的操作方法。
- 增加Reception
- 增加子类
- 增加父类
- 添加已有的接口
- 添加需要的接口
- 添加关联
- 添加聚合
- 添加组合
- 添加端口
- 添加部件
还是得多练,各个组件多用用就熟了。
可以照着我的图自己画出来,画一遍就入门了,UML入门门槛不高,有一定编程基础的很快就能掌握。
类间关系
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)
泛化
- 泛化(Generalization)表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系
- 继承表示是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。
继承使用空心三角形+实线表示。
示例:鸟类继承抽象类动物
实现
- 实现表示一个class类实现interface接口(可以是多个)的功能。
表示方法:
1)矩形表示法
使用空心三角形+虚线表示
比如:大雁需要飞行,就要实现飞()接口
2)棒棒糖表示法
使用实线表示
依赖
对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。
表示方法:依赖关系用虚线箭头表示。
示例:
动物依赖氧气和水。调用新陈代谢方法需要氧气类与水类的实例作为参数
关联
对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。
表示方法:关联关系用实线箭头表示。
示例:
企鹅需要‘知道’气候的变化,需要‘了解’气候规律。当一个类‘知道’另一个类时,可以用关联。
聚合
表示一种弱的‘拥有’关系,即has-a的关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。 两个对象具有各自的生命周期。
表示方法:聚合关系用空心的菱形+实线箭头表示。
示例:
每一只大雁都属于一个大雁群,一个大雁群可以有多只大雁。当大雁死去后大雁群并不会消失,两个对象生命周期不同。
组合
组合是一种强的‘拥有’关系,是一种contains-a的关系,体现了严格的部分和整体关系,部分和整体的生命周期一样。
表示方法:组合关系用实心的菱形+实线箭头表示,还可以使用连线两端的数字表示某一端有几个实例。
示例:
鸟和翅膀就是组合关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。