• 十分钟掌握uml符号!把类图画给面试官看!


    开始听我扯

    首先从语序上面来说
    顾客有地址 关联关系 从顾客出发的箭头,黑三角箭头
    然后 你有我,我有你,应该是两个箭头,于是消了,就变成一个直线
    自己关联自己,就是自己给自己画箭头。

    接下来是继承关系,这个虚吗?这个可不虚,他们有物理结构上的关联(虽然没有像关联那样,写在类内部,但继承,你懂得,可以访问到父类),所以就是 实线 的 空心三角形。
    同样的也是 A继承B,那么就是 A指向B。

    然后下一个关系聚合关系,注意注意,还是要保证谁是主要的老师聚合成了学校。这么说
    那就是从老师出发,然后一个空菱形指向学校。主体是老师,学校没了,老师还在。

    组合关系,强关系,手指组成了手,手没了,手指还在吗?显然是没有了,所以这里是黑菱形箭头,而且是实线。

    另一个比较虚的就是实现关系了,说他虚吧,也是一样的,我不关注你怎么实现的,我只用把接口定义好了就可以了。 实现类 --虚线 +虚线三角形 - 被实现类(接口)

    下一个是 依赖关系,这一听就不是什么强关系,而且像上面提到的,都是真真切切的,结构设计上就是作为内部属性的。这个只是依赖,很弱,就是虚线了。(就是像一些局部变量,像一些形参用到了其他的类,就是当前这个类依赖那个类了),也是 依赖 --虚线 +虚线箭头 - 被依赖类
    (我觉得还是对于被依赖的东西来说,我压根就不关注你)

    怎么记忆方向呢

    起码根据我的逻辑,谁是主语,那么箭头就是从谁出发的。

    关联关系: a里面有b,a关联了b。
    继承关系:狗继承了狼。
    组合关系:手指组成了手,手组成了身体(的一部分),从手指出发,从手出发
    聚合关系:老师聚集在了学校,
    实现关系:汽车实现了可以开,自行车实现了可以骑
    依赖关系:人依赖地铁(人坐地铁,飞机,汽车太多了)(非常非常弱的关系,人可以依赖的东西太多了,所以他就是最简单的画法,虚线 + 虚线箭头)

    最后总结一下 特征

    再过一遍,什么线,什么箭头
    关联关系:实线 三角 实心
    继承关系:实线 三角 空心
    组合关系:实线 菱形 实心的(相较于聚合,是更强的关系,因为组合成的东西没有了,这些部件也没用了)
    聚合关系:实线 菱形 空心
    实现关系:虚线 虚线三角形
    依赖关系:虚线 虚线箭头

    小测试题(答案在最底下)

    自己看看能不能认出这些关系吧

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    从上到下依次答案是:

    关联
    双向关联(互相关联)
    自关联
    继承
    组合
    聚合
    实现
    依赖

    参考:

    黑马设计模式的笔记整理(UML图部分)

    题外话

    线下面试让我写装饰器的UML类图,没写出来。遂学之。

  • 相关阅读:
    Python编程 字典创建
    【AGC】引导用户购买提升用户留存率
    前篇 + 入门
    【开放问题】代码越少开发效率越高?可能是没被坑过
    CPP-Templates-2nd--第 21 章 模板和继承
    KubeEdge:下一代云原生边缘设备管理标准DMI的设计与实现
    一阶惯性滤波器的传递函数与时域实现
    C++基础学习01
    MySQL--创建,删除,查找,案例
    ModuleNotFoundError: No module named ‘scripts.animatediff_mm‘ 解决方案
  • 原文地址:https://blog.csdn.net/aiwandianao/article/details/133721364