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

文章目录

  • 前言
    • 1.组合
    • 2.聚合
    • 3.关联
      • 3.1单向关联
      • 3.2双向关联
      • 3.3自关联
    • 4.依赖
    • 5.实现
    • 6.继承(泛化)
  • 总结
  • 参考


前言

设计模式系列目录

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

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

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

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

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

1.组合

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

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

2.聚合

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

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

3.关联

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

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

  • 结构:实线、箭头

3.1单向关联

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

3.2双向关联

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

3.3自关联

  • 结构:实线、箭头
  • 表达:A自己持有自己
    极简设计模式 - UML类图几种线条_第1张图片

4.依赖

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

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

5.实现

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

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

6.继承(泛化)

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

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

总结

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

参考

Difference between association and dependency?

你可能感兴趣的:(设计模式,uml,设计模式)