UML_类图

类图

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

包含元素


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

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

判断类之间关系步骤

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

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

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

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

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

posted on 2024-06-17 16:01  zhangyukun  阅读(37)  评论(0编辑  收藏  举报

导航