UML类图和时序图

Posted 亦袁非猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UML类图和时序图相关的知识,希望对你有一定的参考价值。

在做功能比较复杂的项目模块的时候,为了理请代码的逻辑,方便以后对接的同事方便查看,一般会整理一下流程图、类图和时序图。  
发现自己在画图的时候,有时候不太记得类图的个别图示,就整理一下输出了这篇文章。

类图

在开发中,经常会用到类图,尤其是功能模块涉及很多类的时候,使用类图,可以明了地显示各个类之间的关系。类图的学习还是比较简单,只要知道基本的图示作用,以及弄懂类之间的关系。

类图图示元素含义

先对各个图示进行介绍,主要是接口、类以及各种关系连接线

接口

image-20180728162538350
  • 第一行:接口名称,接口需要添加《Interface》

  • 第二行:特性(字段或者属性)
    格式为:可见性 特性名称:特性类型

  • 第三行:操作(方法或者行为)
    格式为:可见性 操作名称(参数类型):返回值类型  
    可见性:+表示public,-表示private,#表示protected

UML类图和时序图
image-20180728163641732
  • 第一行:类名称,如果是抽象类,用斜体表示

  • 第二行:特性(字段或者属性)
    格式为:属性范围 特性名称:特性类型

  • 第三行:操作(方法或者行为)
    格式为:操作范围 操作名称(参数类型):返回值类型

关系连接线

类之间的关系有6种,分别为实现关系、泛型关系、关联关系、依赖关系、聚会关系、组合关系。  

UML类图和时序图
image-20180728165213977

类的关系

上面的图示也列出类关系的6种连接线,接下来对各个关系进行详细介绍

实现关系

  • 是一种类与接口的关系

  • 表现在代码上,就是实现interface接口  

    UML类图和时序图
    image-20180728165555810

泛型关系

  • 是一种类与类的继承关系

  • 表现在代码上,就是通过extend继承  

    UML类图和时序图
    image-20180728165817291

关联关系

  • 是一种拥有的关系, 它使一个类知道另一个类的属性和方法。

  • 关系关系可以是单向的,也可以是双向的,互相关系。

  • 表现在代码上,一般是类中的一个成员属性。  

    UML类图和时序图
    image-20180728173446758

依赖关系

  • 是一种使用的关系,  即一个类的实现需要另一个类的协助。这种关系具有偶然性的、临时性的、非常弱的。

  • 表现在代码上,就是类B被作为类A的某个方法参数传递进来使用。

    UML类图和时序图

组合关系和聚合关系

  • 两者都是整体与部分的关系

  • 组合关系中的部分,不能离开整体而单独存在的,比如公司和部门是整体与部分的关系,部门不能单独存在,没有公司就没有部门了。

  • 聚合关系中的部分,能离开整体单独存在,比如汽车和轮胎是整体与部分的关系,轮胎可以单独存在。

  • 两者表现在代码上,和关联关系一样,是类中的一个成员属性。具体不同只能通过语义区分。  

    image-20180728174548975

总结

最后,借用《大话设计模式》中的一张UML类图来展示各个类图的关系  

image-20180728180119156

时序图

上面讲到的是类图,平时另外开发中,尤其是看源码的时候,用得比较多的,就是时序图了。类图用来表示各个类之间的关系,时序图,用来描述对象之间动态协作的顺序。
时序图使用起来也特别方便,要整理的时候,发现网上有文章整理很不错了,如UML建模之时序图(Sequence Diagram)https://www.cnblogs.com/ywqu/archive/2009/12/22/1629426.html,就不再自行整理了。
写博客的目的,是为了理解归纳知识点,然后通过自己的思维习惯输出,下次忘记的时候,看自己的文章立马回顾起来。看别人的一篇也能回顾,也就不为了写文章而写文章了。

参考资料

  • 《大话设计模式》—UML类图

  • 看懂UML类图和时序图
    http://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html#generalization

  • UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合
    https://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html

  • 五分钟读懂UML类图
    https://www.cnblogs.com/shindo/p/5579191.html

  • UML建模之时序图(Sequence Diagram)
    https://www.cnblogs.com/ywqu/archive/2009/12/22/1629426.html

以上是关于UML类图和时序图的主要内容,如果未能解决你的问题,请参考以下文章

图解设计模式-看懂UML类图和时序图

[设计]图说设计模式-看懂UML类图和时序图

用gif图展示UML中箭头和线条的含义,及搞懂UML类图时序图和用例图

看懂UML类图和时序图

(转)看懂UML类图和时序图

eclipse下生成Java类图和时序图,生成UML图