UML图可以说是每个编程人员必须知道的知识,关于UML了相关知识可以专门开设课程进行学习,知识体系在软件工程中很重要,特别是设计到专业的团队开发时,这些东西显得尤为重要。我在这里只是介绍UML图中的基础概念,让你可以快速的看懂一张UML图,而不必啃UML的知识体系。
首先我网上找到了一张比较好的图(注:如有侵权请告知,仅此博文用途用,无意冒犯)
一、类图
以图中动物这个类为例,类图分为三层,第一层是类名,如果是抽象类,则会用斜体显示;第二层是类的特性,一般是属性和字段,第三层是类的操作,一般是方法。在特性和操作前的符号,其中,“+”代表public,“-”代表private,“#”代表protected。
二、接口图
接口类共有两种表示方式,第一种如图中的“飞翔”,它与类图的区别主要是顶端有<<interface>>,第一行是接口名,第二行是接口方法,符号含义相同。另一种表示方式如图中的“唐老鸭”的类似棒棒糖的表示方式,即唐老鸭实现了“讲人话”的接口
三、继承关系
继承关系用“空心三角形+实线”表示,即子类属于父类,如鸟属于动物。
四、实现接口
类实现了一个接口的关系用“空心三角形+虚线”表示,即大雁能够飞翔。
五、关联关系
关联关系用实线箭头表示,即一个类需要知道另一个类的时候,就用关联关系,如企鹅需要知道气候,用代码的方式来看,就是企鹅类中使用了气候作为属性,代码表示如下。
class Penguin extends Bird{
private Climate climate;
}
六、聚合关系
聚合关系用“空心的菱形+实线箭头”表示,其中聚合表示一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分,如每一个大雁属于一个雁群,一个雁群可以有多只大雁,代码表示如下。
class WideGooseAggregate{
private WideGoose[] arrayWideGoose;
}
七、合成(组合)关系
合成(组合)关系用“实心菱形+实线箭头”表示,其中合成是一种强的拥有关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。即图中鸟与其翅膀是合成关系,因为他们是整体,生命周期一样。另外合成关系的连线两端还有数字“1”和数字“2”,这被称为基数,表明这一端可以有几个实例,如果有无数个实例,就用“n”表示,关联关系、聚合关系也可以有基数,代码表示如下。
class Bird{
private Wing wing;
public Bird() {
wing = new Wing();
}
}
八、依赖关系
依赖关系用“虚线箭头”表示,即图中动物需要水、氧气以及食物,代码表示如下。
abstract class Animal{
public Metabolism(Oxygen oxygen, Waiter water) {
}
}