在做功能比较复杂的项目模块的时候,为了理请代码的逻辑,方便以后对接的同事方便查看,一般会整理一下流程图、类图和时序图。
发现自己在画图的时候,有时候不太记得类图的个别图示,就整理一下输出了这篇文章。
[TOC]
类图
在开发中,经常会用到类图,尤其是功能模块涉及很多类的时候,使用类图,可以明了地显示各个类之间的关系。类图的学习还是比较简单,只要知道基本的图示作用,以及弄懂类之间的关系。
类图图示元素含义
先对各个图示进行介绍,主要是接口、类以及各种关系连接线
接口
- 第一行:接口名称,接口需要添加
《Interface》
- 第二行:特性(字段或者属性)
格式为:可见性 特性名称:特性类型
- 第三行:操作(方法或者行为)
格式为:可见性 操作名称(参数类型):返回值类型
可见性:+
表示public,-
表示private,#
表示protected
类
- 第一行:类名称,如果是抽象类,用斜体表示
- 第二行:特性(字段或者属性)
格式为:属性范围 特性名称:特性类型
- 第三行:操作(方法或者行为)
格式为:操作范围 操作名称(参数类型):返回值类型
关系连接线
类之间的关系有6种,分别为实现关系、泛型关系、关联关系、依赖关系、聚会关系、组合关系。
类的关系
上面的图示也列出类关系的6种连接线,接下来对各个关系进行详细介绍
实现关系
- 是一种类与接口的关系
- 表现在代码上,就是实现interface接口
泛型关系
- 是一种类与类的继承关系
- 表现在代码上,就是通过extend继承
关联关系
- 是一种拥有的关系, 它使一个类知道另一个类的属性和方法。
- 关系关系可以是单向的,也可以是双向的,互相关系。
- 表现在代码上,一般是类中的一个成员属性。
依赖关系
- 是一种使用的关系, 即一个类的实现需要另一个类的协助。这种关系具有偶然性的、临时性的、非常弱的。
表现在代码上,就是类B被作为类A的某个方法参数传递进来使用。
组合关系和聚合关系
- 两者都是整体与部分的关系
- 组合关系中的部分,不能离开整体而单独存在的,比如公司和部门是整体与部分的关系,部门不能单独存在,没有公司就没有部门了。
- 聚合关系中的部分,能离开整体单独存在,比如汽车和轮胎是整体与部分的关系,轮胎可以单独存在。
- 两者表现在代码上,和关联关系一样,是类中的一个成员属性。具体不同只能通过语义区分。
总结
最后,借用《大话设计模式》中的一张UML类图来展示各个类图的关系
时序图
上面讲到的是类图,平时另外开发中,尤其是看源码的时候,用得比较多的,就是时序图了。类图用来表示各个类之间的关系,时序图,用来描述对象之间动态协作的顺序。
时序图使用起来也特别方便,要整理的时候,发现网上有文章整理很不错了,如UML建模之时序图(Sequence Diagram),就不再自行整理了。
写博客的目的,是为了理解归纳知识点,然后通过自己的思维习惯输出,下次忘记的时候,看自己的文章立马回顾起来。看别人的一篇也能回顾,也就不为了写文章而写文章了。