UML类图简介

导语

在一些框架讲解、设计模式等技术帖子或者书中,经常出现UML图。以自己的经历来判断,一般情况下,看到这些图解都会选择性忽视。这算是惰性,也没有办法;如果突然有一天,非要使用UML图,那么这篇文章可能会有所帮助。
这个是starUML的下载地址

接口和类的简介

首先从最简单的入手:接口

Class典型的UML示范

UML类图简介_第1张图片

从上到下分成了三个部分,分别是:

  1. 类名
  2. 属性
  3. 方法

属性和方法前面有#,-,+符号,分别表示:

  1. + –> public
  2. - –> private
  3. # –> protected

上面的UML图,翻译成Java代码如下:

public class Person {

    private int age;
    protected String name;
    public int sex;

    private int getAge() {
        return age;
    }

    protected String getName() {
        return name;
    }

    public int getSex() {
        return sex;
    }

}

interface典型的UML示范

UML类图简介_第2张图片

《interface》很清楚地标明了这个是一个接口。上图翻译成Java代码如下:

public interface CallBack {
    public void call();
}

继承和实现

继承

类与类之间的继承用空心三角形+实线表示,例如:

UML类图简介_第3张图片

实现

类与接口之间的实现使用空心三角形+虚线表示,例如:

UML类图简介_第4张图片

如果在使用starUML,会发现没有extends和implements相关的线条,因为不同的语言,这种表述不太一致,所以一般软件使用更加通用的名称来表示,具体来说就是:

  1. Generalization(泛化)–>extends
  2. Realization(实现)–>implements

依赖、关联、聚合和组合(Dependence、Association、Aggregation和Composition)

除了继承(泛化)和实现以外,一般类与类的关系还包括依赖、关联、聚合和组合
这几种类与类之间的关系是有强弱之分的,可以大致排序为:
泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

依赖

依赖表示一个类的实现需要另一个类的协助,是类与类之间一种很弱的联系
表示方法:虚线+箭头,箭头指向被使用的对象
例如:
UML类图简介_第5张图片

学生为了得到高分需要书本的协助,但这种协助的效果有限(这里只是举例子,不用较真)

关联

关联表示:一种拥有关系,一个类知道另一个类的属性和方法
表示方法:单向关联:实线+箭头;双向关联:只有直线

例如:
UML类图简介_第6张图片

学生与老师之前是互动关系,是相互关联的;学生可以选课、逃课、翘课……是单向关联

聚合

聚合表示:一种整体与部分的关系,部分可以脱离整体而单独存在
表示方法:使用空心菱形链接

例如:
UML类图简介_第7张图片

眼镜可以离开人体而单独存在。

组合

组合表示:一种整体与部分的关系,部分不能脱离整体而单独存在
表示方法:使用实心菱形

例如:
UML类图简介_第8张图片

腿不能离开人体而单独存在

ps:不同工具可能在聚合和组合的线段展示上不太一致,但最重要的菱形的空心与实心分别代表聚合和组合是一致的

结语

UML类图的解读并不复杂,只需稍微看下,就可以掌握。另外,如果想自己制作UML类图,可以参考这篇文章。所使用的工具在这里下载

转载请标明出处:http://blog.csdn.net/qq_26411333/article/details/53507165

你可能感兴趣的:(随笔,技术杂谈)