首先推荐在线绘制UML的网址:https://www.processon.com/,很好用.

在软件开发过程中,开发人员往往需要通过绘制类图来理清业务的实现思路,从而方便代码实现,也便于后期的代码维护,下面是学习记录:

参考资料:http://www.jianshu.com/p/4cd95d4ddb59

在类图主要元素包括:类,接口,类接口之间关系

一,类:对于面向对象编程而言,类是对具有共同特征的物体的抽象;

在类图中一般的画法是:

说明:

“+”表示public;

“-”表示private;

"#"表示protected;

类的名称如果用抽象类,名称用斜体表示;

二,接口是一种特殊的类,具有类的结构但是不可以被实例化,只可以被继承(实现),在UML中,接口使用带有名称的小圆圈表示:

类图中关系:

常见的关系由如下几种:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

泛化:一种继承关系,表示一般与特殊的关系,制定了子类如何特化父类的特征和行为,其中箭头方向:带三角箭头的实线,箭头指向父类:

实现:是一种类与接口的关系,表示类是接口所有特征和行为的实现,其中带三角箭头的虚线,箭头指向接口:

3.关联关系:是一种拥有的关系,即一个类知道另一个类的属性和方法,如:老师与学生,关联关系可以是单项的也可以是双向的;

其中带普通箭头的实心线,指向被拥有者;

4.聚合关系:是整体和部分的关系,且部分可以离开整体而单独存在,如轮胎和车是部分和整体的关系,但是轮胎可以离开车而独立存在:

聚合关系是关联关系的一种,是强的关联关系,关联和聚合在语法上无法区分,必须考虑具体的逻辑关系:

其中:带空心菱形的实心线,菱形指向整体:

组合:是整体和部分的关系,但是部分不能脱离整体而单独存在;

如公司和部门是整体和部分的关系,但是没有公司就不存在部门;

组合关系是关联关系的一种,是比聚合关系还要强的关系;

6.依赖关系:是一种使用关系,即一个类的实现需要另一个类的协助,所以尽量不要使用双向的依赖关系;

其中带箭头的虚线,指向被使用者;

各种关系的强弱:

泛化=实现 > 组合  > 聚合 > 关联 > 依赖

如何绘制UML图?的更多相关文章

  1. Markdown 绘制 UML 图 -- PlantUML + Gravizo(转)

    原文地址:Markdown 绘制 UML 图 -- PlantUML + Gravizo

  2. 在VSCode使用Markdown绘制UML图

    在VSCode使用Markdown绘制UML图 需要插件 Markdown All in One Markdown Preview Enhanced PlantUML markdownlint Mar ...

  3. 绘制UML图的工具

    目前在用processOn网站进行绘制:https://www.processon.com/ 学习其简单的入门教程: https://www.processon.com/support https:/ ...

  4. Eclipse自动生成UML图(转载)

    *ModelGoon是什么? 它是一个Eclipse插件,用于基于UML图的模型设计,以及逆向工程(即从已有源代码生成类图等,以作为代码分析或者文档使用). *适用条件 ModelGoon目前最新的版 ...

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

    1.安装和使用AmaterasUML 安装AmaterasUML前,需要先安装GEF采用eclipse在线安装方式安装就好.eclipse在线安装GEF的地址:http://download.ecli ...

  6. 【UML九种图系列】之如何利用三层来绘制类图、时序图?

    UML并发视图:实体之间行为的交互,是动态.分为:时序图.协作图.状态图.活动图 一.时序图简述: 时序图(Sequence Diagram):描述对象之间的交互行为,按照时间顺序排列. 元素: 角色 ...

  7. CentO7-使用plantuml绘制UML类图

    准备工作 到PlantUml官网(http://plantuml.com/download)下载plantuml.jar.官网上还有一个在线的demof服务.plantuml的官网真的很挫! 到官网下 ...

  8. 10分钟学会使用Markdown绘制UML时序图

    1.1 什么是Markdown? Markdown是一种语法特别少.特别简单的标记语言,用来编写文档.用Markdown编写的文档是纯文本格式,经过编辑器的渲染,就会形成排 版优美的文档,本文就是用M ...

  9. 使用工厂方法模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实

    2.使用工厂方法模式设计能够实现包含加法(+).减法(-).乘法(*).除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果.要求使用相关的工具绘制UML类图并严格按照类图的设计编写程 ...

随机推荐

  1. 添加依赖:https://mvnrepository.com/

    该网站搜索

  2. 012-Python-paramiko和IO多路复用

    1.IO 多路复用 1.监听多个socket变化 2.socket服务端 IO多路复用+socket 来实现web服务器: a.服务端优先运行 b.浏览器:http://.......com 浏览器连 ...

  3. SQLServer 表连接种类

    SQLServer 有3种物理连接:Nested Loop(嵌套循环).Merge Join(合并联接).Hash Join(哈希联接). T-SQL中的inner/left/right/full j ...

  4. Personal小金库(避免遗忘,优秀的网址会保存于此方便自己查看)

    由于记性不好,~.~,所以整理了一下一些自己经常看的网址或者博客......不断更新中,如果对您造成了侵权,我立马删除.谢谢~.~ 1:个人的一些link~.~ 博客园名称:别先生 博客园网址:htt ...

  5. CentOS7安装wps

    https://blog.csdn.net/u010445843/article/details/77828552

  6. 'tensorflow' has no attribute 'sub'

    在学习tensorflow的时候,照到官方的例子做,发现了一个 Traceback (most recent call last): File , in <module> sub = tf ...

  7. yum安装mongodb

    1.创建mongodb.repo文件 在/etc/yum.repos.d/目录下创建文件mongodb.repo,它包含MongoDB仓库的配置信息,内容如下: 复制代码代码如下: [mongodb] ...

  8. [POI2007]堆积木Klo

    题解: dp定义方程的时候 好像也不能都用前一个来递推..这样就不能优化了 这题看了题解才想出来... 还是很简单的啊.... 我们定义f[i]表示前i个最大收益 那么j要能从i转移就得满足a[i]- ...

  9. python之requests 乱七八糟

    1.预配置 import requests ss = requests.Session() ss.headers.update({'user-agent':'Mozilla/5.0 (Windows ...

  10. mongodb输错命令后不能删除问题

    在用crt连接Linux操作MongoDB时,命令输错了,想删除的时候,却删除不了,原因是crt的配置有问题,解决办法如下 第一步:选项-->会话选项