类图
描述的类和类之间的静态关系,是逻辑层面的模型
包含元素
- 类
类里面有类名,属性,和方法,可以更具需要不写属性和方法的类型,也可以属性和方法都不写,方法和属性前面的+-号表示访问权限
-
+
公有 -
-
私有 -
#
受保护的 -
~
是包权限
- 关系
- 依赖:没有直接关系
虚线+箭头 - 关联:有直接关系,但是没有整体和部分关系,是平级关系而不是整体和部分关系,多对多一般是关联关系
实线+双向箭头 - 组合:一般是一对多,整体和部分的关系,整体和部分不可分离,生命周期相同
实线+实心菱(部分指向整体) - 聚合:一般是一对多,整体和部分的关系,整体和部分可以分离,生命周期不同
实线+空心菱 - 泛化:泛化是子类
实线+空心三角箭头(子指向父) - 实现:实现是接口
虚线+空心三角箭头
类图之间关系还有多重度的标注,也就是1对1,一对多,和多对多,出了泛化和实现都可以用几对几来指明多重度
判断类之间关系步骤
- 应该先考虑他们是否有父子关系(实现和泛化)
接口和实现类之间是实现关系,父类和子类之间是泛化(继承)关系
- 然后判断他们是否整体和部分中间的关系(组合和聚合)
整体和部分生命周期一样就是组合,生命周期可以不一样就是聚合
- 然后判断他们是有有直接关系(关联和依赖)
有直接关系就是关联,没有直接关系但有间接依赖关系就是依赖(有依赖关系的前提是相互有影响,没有影响他们之间不存在关系)
获取IP变化的程序的类图