UML_类图

类图

描述的类和类之间的静态关系,是逻辑层面的模型

包含元素


  • 类里面有类名,属性,和方法,可以更具需要不写属性和方法的类型,也可以属性和方法都不写,方法和属性前面的+-号表示访问权限
    • + 公有
    • - 私有
    • # 受保护的
    • ~ 是包权限
  • 关系
    • 依赖:没有直接关系
      虚线+箭头
    • 关联:有直接关系,但是没有整体和部分关系,是平级关系而不是整体和部分关系,多对多一般是关联关系
      实线+双向箭头
    • 组合:一般是一对多,整体和部分的关系,整体和部分不可分离,生命周期相同
      实线+实心菱(部分指向整体)
    • 聚合:一般是一对多,整体和部分的关系,整体和部分可以分离,生命周期不同
      实线+空心菱
    • 泛化:泛化是子类
      实线+空心三角箭头(子指向父)
    • 实现:实现是接口
      虚线+空心三角箭头

类图之间关系还有多重度的标注,也就是1对1,一对多,和多对多,出了泛化和实现都可以用几对几来指明多重度

判断类之间关系步骤

  • 应该先考虑他们是否有父子关系(实现和泛化)
    接口和实现类之间是实现关系,父类和子类之间是泛化(继承)关系

    举例子:正常设计支付程序,支付和微信支付就是实现关系
    
    举例子2:如果之前没有为支付设计接口,只有现金支付的实现,后来并且没有提取高层接口,只是实现的微信支付继承了现金支付,这就是泛化
    
  • 然后判断他们是否整体和部分中间的关系(组合和聚合)
    整体和部分生命周期一样就是组合,生命周期可以不一样就是聚合

    举例子1:人和心脏,一般来说他们生命周期是一样的不可分隔,是组合
    
    举例子2:电脑和内存条,内存可以拔下来插到别的电脑上,是聚合
    
    备注:组合和聚合按照主观常识判断即可,不用吹毛求疵,毕竟心脏也是可换的,内存取了运行的电脑也回死机。
    
  • 然后判断他们是有有直接关系(关联和依赖)
    有直接关系就是关联,没有直接关系但有间接依赖关系就是依赖(有依赖关系的前提是相互有影响,没有影响他们之间不存在关系)

    举例子1:冰箱和冰箱里面放的东西,他们是关联关系(不存在整体和部分,冰箱里面可以不放东西也是一个完整的冰箱)
    举例子2:冰箱和入户开关是依赖关系,他们没有直接的连续,冰箱和供电插座有关联关系,插座和开关有有关联关系,但是冰箱和开关没有直接关系,但是关了开关,冰箱就停了,存在依赖。
    

获取IP变化的程序的类图
image-20240615195933018

posted on   zhangyukun  阅读(63)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2022-06-17 各种 垃圾收集器结构和原理
2022-06-17 JDK11 新特性 String去空白字符加强版方法 首次支持ZGC
2022-06-17 JDK10 新特性 局部变量类型推断
2022-06-17 JDK 9新特性 系统模块化 接口私有方法等

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示