类图:UML中的类图是一种静态结构图,它通过显示系统的类、它们的属性、操作以及对象之间的关系来描述系统的结构。
类:对系统中具有相似角色的一组对象的描述,包括属性和操作。
==============================================================================
类的符号
类名、类属性、类操作(方法)
:类中属性和操作名称前的+表示公共属性或操作;-表示私有属性或操作;#表示受保护的属性或操作;~表示包属性或操作
==============================================================================
类关系
继承(泛化)、关联、聚合、组成、依赖
继承
“is a”关系
SubClass1 和 SubClass2 是 Super Class 的特化
带有空心箭头的实线,从子类指向父类
例子:
关联
两个对等类之间的连接
Class1 和 Class2 之间存在关联
连接两个类的实线
聚合
一种特殊类型的关联。它代表关系的“一部分”。
Class2 是 Class1 的一部分。
Class2 的许多实例(用 * 表示)可以与 Class1 相关联。
Class1 和 Class2 的对象具有不同的生命周期。
关联端带有未填充菱形的实线
例子:
组成
Class2 的对象与 Class1 一起生存和死亡。
Class2 无法独立存在。
关联处带有实心菱形的实线
依赖
如果对一个类的定义的更改可能导致对另一个类的更改(但不是相反),则存在于两个类之间。
Class1 依赖于 Class2
带有空心箭头的虚线
==============================================================================
关系名称
例子:
“每个电子表格都包含一些单元格”,
“一个表达式计算出一个值”
它们通常有一个小箭头来显示读取关系的方向,例如,表达式计算为值,但值不计算为表达式。
箭头表示,给定一个参与关系的实例,是否可以确定与其相关的另一个类的实例。
多重性
每个类有多少个对象参与到关系和多重性中,表示为:
正好1个:1
0或1个:0…1
许多:0…*或*
1个或多个:1…*
确切数字:例如3…4或6
复杂的关系 - 例如 0…1、3…4、6.* 表示除 2 或 5 之外的任意数量的对象
例子:一个学生可以参加多门课程,许多学生可以参加一门课程
==============================================================================