admin管理员组

文章数量:1530044

欢迎来到UML类图的世界

较为官方式的解释,UML 这三个字母的全称是 Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言。
UML 的模型主要有三部分构成:
事物(Things):UML 模型中最基本的构成元素,是具有代表性的成分的抽象。
关系(Relationships):关系把事物紧密联系在一起。
图(Diagrams):图是事物和关系的可视化表示。

但根据我个人的理解,我感觉 UML类图 是一种类似语言的工具,它可以用于交流,就像中国的普通话一样,还有汉字,又比如一种标识,比如交通规则等等。

为何学习UML类图

1.在一些书籍上,会出现类似下面图中的UML类图,学会看类图,读懂它,掌握与别人的沟通桥梁。


2.自己如何将自己的整体的架构与设计模式告诉别人,我感觉也是学习UML很重要的一个点。(哪怕一个类里面有很多变量,方法,引用等等,但 一张UML类图就可以描述,简洁方便。)

3.也是一个程序员必备的技能树。

UML类图有哪些工具

UML工具 Astah community,visio,ProcessOn,StartUML,WPS也可以噢.

UML类图

在UML类图中,常见的有以下几种关系: 泛化(继承 Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

1.继承(泛化)
【实现关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。
【箭头指向】:带三角箭头的实线,箭头指向父类

2.实现.
【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.
【箭头指向】:带三角箭头的虚线,箭头指向接口


3.关联
一个类对象与另一个类对象有联系,在C++/Java等实现中,通常将一个类的对象作为另一个类的属性。
【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。 双向的关联可以有两个箭头或者没有箭头,单向的关联 或 自关联 有一个箭头。
【代码体现】:成员变量
【箭头及指向】:带普通箭头的实心线,指向被拥有者

关联关系又可进一步分为单向关联、双向关联和自关联。

1)单向关联

我们可以看到,在UML类图中单向关联用一个带箭头的直线表示。上图表示每个顾客都有一个地址,这通过让Customer类持有一个类型为Address的成员变量类实现。

(2)双向关联

从上图中我们很容易看出,所谓的双向关联就是双方各自持有对方类型的成员变量。在UML类图中,双向关联用一个不带箭头的直线表示。上图中在Customer类中维护一个Product[]数组,表示一个顾客购买了那些产品;在Product类中维护一个Customer类型的成员变量表示这个产品被哪个顾客所购买。

(3)自关联

自关联在UML类图中用一个带有箭头且指向自身的直线表示。上图的意思就是Node类包含类型为Node的成员变量,也就是“自己包含自己”。

  1. 聚合

    上图中的Car类与Engine类就是聚合关系(Car类中包含一个Engine类型的成员变量)。由上图我们可以看到,UML中聚合关系用带空心菱形和箭头的直线表示。聚合关系强调是“整体”包含“部分”,但是“部分”可以脱离“整体”而单独存在。比如上图中汽车包含了发动机,而发动机脱离了汽车也能单独存在。

  1. 组合
    组合关系与聚合关系见得最大不同在于:这里的“部分”脱离了“整体”便不复存在。比如下图:

    显然,嘴是头的一部分且不能脱离了头而单独存在。在UML类图中,组合关系用一个带实心菱形和箭头的直线表示。

比如 RecyclerView 带的 Recycler.

与聚合关系最大的不同是 : 部分离开整理是不能单独存在的。 比如下面的这个例子,分明显部门 是属于特定的公司的,如果部门脱离所在的公司,不能单独存在的,所以部门和员工之间的关系是组合关系。

  1. 依赖
    【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.
    【代码表现】:局部变量、方法的参数或者对静态方法的调用
    【箭头及指向】:带箭头的虚线,指向被使用者

    从上图我们可以看到,Driver的drive方法只有传入了一个Car对象才能发挥作用,因此我们说Driver类依赖于Car类。在UML类图中,依赖关系用一条带有箭头的虚线表示。

内部类表示方式:

参考资料

五分钟读懂UML类图

UML 统一建模语言

时序图

UML条件判断

UML之包图(Package Diagram)

UML类图之间的关系:依赖、关联、聚合、组合等

UML时序图资料:
http://www.woshipm/ucd/607593.html

本文标签: 入门uml类图