uml类图的几种关系-方便记忆

文章是学习Graphic Design Patterns笔记

先上一图,按住不表,先介绍几种关系


image.png

泛化关系

实现类与基类关系,又称继承关系,isa关系(xxxx is a yyyy), 比如猫是动物 (猫 is a 动物),suv是小汽车,(suv is a 小汽车) ,下图表示为A继承自B


A继承自B
  • 表示为: 带实线的空心三角箭头 _____|>

实现关系 realize

车子是抽象概念,生活中说一个人说话很飘,说不到重点,不具体,就是经常使用抽象的概念词,我家有车 是说有自行车🚲还是小汽车🚘呢还是法拉利呢,大部分的人会觉得很高大上是吧,因为用了抽象概念。

小汽车是车的实现

小汽车是车的实现(具体化)

  • 表示为带虚线的空心三角箭头----|> ,告诉你这是虚的
    -- 所以有时候设计上玩点实现关系看起来很高级

聚合关系 aggregation

用于实体对象之间表示成体有部分组成的语义;例如一个部门由多个员工聚成,当部门解散了,员工也还在,所以有人心散了队伍不好带啊,说的就是聚合关系

A聚合到B表示为


A聚合到B
  • 形象记忆方法为,带实线的空心菱形 ____◇
    他两也是聚合关系
    绳子断了摆锤和挂钩也存在

组合关系 composition

与聚合关系类似,表示整体与部分的关系,比如公司由部门组成;
区别是公司不存在了,部门就不存在了,皮之不存,毛将焉附!!

  • 形象记忆为带实线的实心菱形___黑菱形(谁有黑菱形表情发我一下...),实锤了,很重的关系,关系散了就没了的那种
image.png

关联关系 (代表/认识/知道关系)

有分单向和 双向关系
乘车人和车票就是关联关系,你认识我我认识你,叫双向关系,你认识我我不知道你就叫单向关系

  • 形象记忆为一条实线,如果表示方向就用箭头
    A认识B,但是B不认识A

依赖关系 dependency

表示一个对象在运行期间会用到另一个对象的关系
特点: 随着运行的变化,依赖关系也会变化,正所谓在家靠父母出外靠朋友

  • 形象记忆,A依赖B,带虚线的箭头,A是你,B是你父母或朋友


    在家靠父母出外靠朋友

回到最前一图

image.png

我们可以知道

  • 车子是抽象的,小汽车和自行车和它是实现关系
  • 轮胎和发动机和小汽车是组合关系
  • SUV是小汽车的一种,isa 泛化关系(继承)
  • 班级由学生组成,班级散了学生都还在,组合关系
  • 身份证代表这个学生,这是关联关系
  • 学生上学要骑自行车,依赖关系

推荐阅读更多精彩内容