UML_类图
类图
描述的类和类之间的静态关系,是逻辑层面的模型
包含元素
- 类
类里面有类名,属性,和方法,可以更具需要不写属性和方法的类型,也可以属性和方法都不写,方法和属性前面的+-号表示访问权限+
公有-
私有#
受保护的~
是包权限
- 关系
- 依赖:没有直接关系
虚线+箭头 - 关联:有直接关系,但是没有整体和部分关系,是平级关系而不是整体和部分关系,多对多一般是关联关系
实线+双向箭头 - 组合:一般是一对多,整体和部分的关系,整体和部分不可分离,生命周期相同
实线+实心菱(部分指向整体) - 聚合:一般是一对多,整体和部分的关系,整体和部分可以分离,生命周期不同
实线+空心菱 - 泛化:泛化是子类
实线+空心三角箭头(子指向父) - 实现:实现是接口
虚线+空心三角箭头
- 依赖:没有直接关系
类图之间关系还有多重度的标注,也就是1对1,一对多,和多对多,出了泛化和实现都可以用几对几来指明多重度
判断类之间关系步骤
-
应该先考虑他们是否有父子关系(实现和泛化)
接口和实现类之间是实现关系,父类和子类之间是泛化(继承)关系举例子:正常设计支付程序,支付和微信支付就是实现关系 举例子2:如果之前没有为支付设计接口,只有现金支付的实现,后来并且没有提取高层接口,只是实现的微信支付继承了现金支付,这就是泛化
-
然后判断他们是否整体和部分中间的关系(组合和聚合)
整体和部分生命周期一样就是组合,生命周期可以不一样就是聚合举例子1:人和心脏,一般来说他们生命周期是一样的不可分隔,是组合 举例子2:电脑和内存条,内存可以拔下来插到别的电脑上,是聚合 备注:组合和聚合按照主观常识判断即可,不用吹毛求疵,毕竟心脏也是可换的,内存取了运行的电脑也回死机。
-
然后判断他们是有有直接关系(关联和依赖)
有直接关系就是关联,没有直接关系但有间接依赖关系就是依赖(有依赖关系的前提是相互有影响,没有影响他们之间不存在关系)举例子1:冰箱和冰箱里面放的东西,他们是关联关系(不存在整体和部分,冰箱里面可以不放东西也是一个完整的冰箱) 举例子2:冰箱和入户开关是依赖关系,他们没有直接的连续,冰箱和供电插座有关联关系,插座和开关有有关联关系,但是冰箱和开关没有直接关系,但是关了开关,冰箱就停了,存在依赖。
获取IP变化的程序的类图
能耍的时候就一定要耍,不能耍的时候一定要学。
--天道酬勤,贵在坚持posted on 2024-06-17 16:01 zhangyukun 阅读(37) 评论(0) 编辑 收藏 举报