【UML】如何记忆UML类图的画法

前言

UML类图形象反映系统类之间的关系,大家非常常用。小弟不才,偶尔使用,往往每次使用都得查询各种关系的表示方式。终于,这次认真看了几遍,打算记起来。

注意

记忆方法只是本人联想,用于加强记忆。与该表示方式的来源没有半点关系。

元素

类和接口

  • +表示public,-表示private。正代表公开,负代表私密,很正常。

类之间的各种关系

泛化、实现

  • 泛化(可以看成继承)和实现都用三角形来表示。
  • 实现,由“无实现”到“有实现”。没东西是不是比较虚啊,所以用的是虚线
  • 泛化,原来就有实现,只不过在此基础上扩展。本身就很强,用实线
  • 在Java中的表现,泛化,就是继承;实现,就是实现嘛,被实现的可以是接口,或抽象类。

聚合、组合

  • 聚合、组合都是用菱形表示。他们都是多个对象聚集而成,所以体积比较大,你看菱形是不是比三角形、箭头要大一点。
  • 两者都是用实线。
  • 聚合,是聚集起来合成在一起的。比如人员聚集起来合成一个团队,如果团队解散了,但人员还存在。是弱依赖关系,所以用空心的菱形
  • 组合,是(结构)组成合成在一起的。比如商品条目、配送地址信息、付款信息组成订单,如果订单消失了,付款信息也消失了(生存周期一致)。是强依赖关系,所以用实心的菱形

关联、依赖

  • 关联、依赖都是由箭头表示(除了箭头,也想不到其他更合适的了)。
  • 关联,是静态的、非运行时的关系(什么是非运行时的关系?用Java代码来说,A关联B,那么B是A的一个属性,顿时领悟了吧)。那么稳定的关系,当然用实线了。
  • 依赖,是临时的、运行时的关系(用Java代码来说,就是参数嘛),临时的关系,用虚线表示也合理。

参考的资料

posted @   nick_huang  阅读(5382)  评论(5编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
点击右上角即可分享
微信分享提示