如何绘制UML图?
首先推荐在线绘制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图?的更多相关文章
- Markdown 绘制 UML 图 -- PlantUML + Gravizo(转)
原文地址:Markdown 绘制 UML 图 -- PlantUML + Gravizo
- 在VSCode使用Markdown绘制UML图
在VSCode使用Markdown绘制UML图 需要插件 Markdown All in One Markdown Preview Enhanced PlantUML markdownlint Mar ...
- 绘制UML图的工具
目前在用processOn网站进行绘制:https://www.processon.com/ 学习其简单的入门教程: https://www.processon.com/support https:/ ...
- Eclipse自动生成UML图(转载)
*ModelGoon是什么? 它是一个Eclipse插件,用于基于UML图的模型设计,以及逆向工程(即从已有源代码生成类图等,以作为代码分析或者文档使用). *适用条件 ModelGoon目前最新的版 ...
- eclipse下生成Java类图和时序图,生成UML图
1.安装和使用AmaterasUML 安装AmaterasUML前,需要先安装GEF采用eclipse在线安装方式安装就好.eclipse在线安装GEF的地址:http://download.ecli ...
- 【UML九种图系列】之如何利用三层来绘制类图、时序图?
UML并发视图:实体之间行为的交互,是动态.分为:时序图.协作图.状态图.活动图 一.时序图简述: 时序图(Sequence Diagram):描述对象之间的交互行为,按照时间顺序排列. 元素: 角色 ...
- CentO7-使用plantuml绘制UML类图
准备工作 到PlantUml官网(http://plantuml.com/download)下载plantuml.jar.官网上还有一个在线的demof服务.plantuml的官网真的很挫! 到官网下 ...
- 10分钟学会使用Markdown绘制UML时序图
1.1 什么是Markdown? Markdown是一种语法特别少.特别简单的标记语言,用来编写文档.用Markdown编写的文档是纯文本格式,经过编辑器的渲染,就会形成排 版优美的文档,本文就是用M ...
- 使用工厂方法模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实
2.使用工厂方法模式设计能够实现包含加法(+).减法(-).乘法(*).除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果.要求使用相关的工具绘制UML类图并严格按照类图的设计编写程 ...
随机推荐
- Android Studio启动时出现unable to access android sdk add-on list
目录 Android Studio First Run 检测 Android SDK 及更新,由于众所周知的原因,我们会「Unable to access Android SDK add-on lis ...
- The authenticity of host 'slaver2 (192.168.199.132)' can't be established. RSA key fingerprint is cc:4e:23:01:ca:97:52:21:85:78:bc:29:ca:b3:12:52.
1:ssh登录 The authenticity of host 192.168.199.132 can't be established. 的问题 问题出现了,总要解决吧,百度一下,详细介绍的很多, ...
- springboot调用http方式
1.httpclient 2.okhttp 3.feign 安装Gradle包 compile 'org.springframework.cloud:spring-cloud-starter-open ...
- CentOS6.9安装socat
yum -y install epel-release yum -y install socat
- C#default关键字(泛型代码中的默认关键字)
在泛型类和泛型方法中产生的一个问题是,在预先未知以下情况时,如何将默认值分配给参数化类型 T:T 是引用类型还是值类型.如果 T 为值类型,则它是数值还是结构.给定参数化类型 T 的一个变量 t,只有 ...
- Json对象处理.将对象处理成dic数组.
var parser = new JsonConfigurationFileParser();var dict = parser.Parse("json"); using Newt ...
- centos7 yum install redis
直接yum 安装的redis 不是最新版本 yum install redis 如果要安装最新的redis,需要安装Remi的软件源,官网地址:http://rpms.famillecollet.co ...
- NEST - 返回部分文档
Selecting fields to return Version:5.x 英文原文地址:Selecting fields to return 有时候,不需要让 Elasticsearch 返回查询 ...
- Codeforces 348D Turtles LGV
Turtles 利用LGV转换成求行列式值. #include<bits/stdc++.h> #define LL long long #define fi first #define s ...
- mysql查看变量/配置文件位置
//查看所有变量 show global variables //查看某个变量的值 show global variables where variable_name like '%innodb_fl ...