一、图例
类图分三层,
第一层显示类的名称,如果是抽象类,则就用斜体显示。
第二层是类的特性,通常就是字段和属性。
第三层是类的操作,通常是方法或行为。
类名称:如果是抽象类,就用斜体书写。
前面的符号:'+'表示 public,'-'表示private,'#'表示 protected
接口图:与类图的区别主要是顶端有<
函数的返回值类型,写在函数的后面,
函数的参数列表用逗号分隔。
静态成员变量/属性、函数,用下划线标记。
如果是虚函数,用斜体书写(包括纯虚函数,纯虚函数后面还要跟着写"= 0")。
二、关系
共同点是某二者的继承性
> 实现接口:
空心三角形 + 虚线
> 继承(泛化)(Generalization):
空心三角形 + 实线(实线表示继承的关系更强)
共同点是描述某二者的相关性
> 依赖:(Dependency)
箭头 + 虚线。
依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物。
在需要表示一个事物使用另一个事物时使用依赖关系。
大多数情况下依赖关系体现在某个类的方法使用另一个类的对象作为参数。
一般一般体现为局域变量、方法的形参,或者对静态方法的调用
这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A
> 关联:(Association)
箭头 + 实线。(实线表示相关的关系更强)
即类中的成员是另一个类或其派生类型,则该类单向关联到另一个类。
因为成员即是内部的实体,故【关联】反应了实体的组成。而【依赖】,只是用到外部的其他类而已。
关联关系是类与类之间最常见的一种关系,它是一种结构化的关系,表示一个对象与另一个对象之间有联系。
分为:单向关联、双向关联、自关联
如果既是关联,又有依赖,画关联的图标。
共同点是描述类的内部各个实体与类的关系
> 聚合:(Aggregation)
箭头 (可有可无) + 实线 + 空心的菱形。
一个类包含其他类的对象(即拥有一定的操作权),但是不拥有这些对象的生命所有权。
(原文:对象可以包含B对象,但B对象不是A对象的一部分)
成员对象通常以构造方法、Setter方法的方式注入到整体对象之中,因为成员对象可以脱离整体对象独立存在。
是关联关系(has-a)的一种,是强的关联关系。
与关联关系一样,聚合关系也是通过实例变量实现的。
关联的两个对象之间一般是平等的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分。
> 组合:(Composition)
箭头(可有可无) + 实线 + 实心的菱形。(实心表示拥有关系更强)
相比聚合,是一种强的'拥有'关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。
是关联关系(contains-a)的一种,是比聚合关系强的关系。
整件拥有部件的生命周期,所以整件删除时,部件一定会跟着删除
。而且,多个整件不可以同时间共享同一个部件。
标签:关系,聚合,函数,实线,对象,类图,关联,UML From: https://www.cnblogs.com/AbendEssen29/p/18108594