极简设计模式 - UML类图几种线条


前言

设计模式系列目录

中间先夹一篇类图的基本点吧,与人方便自己方便。

用CSDN的markdown画了下类图,发现预览和实际不一样。

于是放弃它,准备借UML工具画几个比现在更能传神的图,用什么画图不重要,领悟到设计图意思,设计出符合自己需求的实体才是最重要的

后边会花时间把之前的markdown类图改为第三方工具画图再以图片形式粘到对应文章内。

下边结合UML图示例,介绍几个线条表示的关系:组合、聚合、关联、依赖、实现、继承(泛化)。

1.组合

一个类持有另一个类的实例。表达有一个,不能没有的意思。人有一个头(人不能没有头)。

  • 结构:实心菱形、实线、箭头
  • 表达:A有一个B并且不能没有B
    组合

2.聚合

一个类持有另一个类的实例。表达包含一个,可以没有。报社有客户订阅者,也可以暂时没有。

  • 结构:空心菱形、实线、箭头
  • 表达:A有一个B,也可以没有
    聚合

3.关联

我即将选用,就多说一句两句的,由于关系强度变弱,关联也可以用来表达聚合、组合的意思。

关联,一个类持有另一个类的实例,有单向关联,双向关联互相关联,自关联持有自己,如链表结构

  • 结构:实线、箭头

3.1单向关联

  • 结构:实线、箭头
  • 表达:A持有B
    单向关联

3.2双向关联

  • 结构:实线
  • 表达:A和B互相持有对方
    双向关联

3.3自关联

  • 结构:实线、箭头
  • 表达:A自己持有自己
    在这里插入图片描述

4.依赖

依赖,表示比关联较弱的关系。将关联关系中的线条换成虚线

  • 结构:虚线、箭头
  • 表达:A使用了B
    依赖

5.实现

表示一个类实现自某个接口。

  • 结构:虚线、空心三角
  • 表达:A实现B接口
    实现

6.继承(泛化)

表示一个类继承自某个类。

  • 结构:实线、空心三角
  • 表达:A继承B
    继承

总结

  • 前4种都是表达类于类之间的持有或者说使用关系。
  • 我习惯于按关联和依赖两种来表示,用依赖有点太弱太过于抽象,于是选关联来表达两个类之间的持有关系。
  • 按关系的强弱来排列:组合>聚合>关联>依赖
  • 继承和实现,没啥好说的。

参考

Difference between association and dependency?

  • 8
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值