首先推荐在线绘制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. 最短路径算法之Dijkstra算法

    参考:<大话数据结构> 这是一个按照路径长度递增的次序产生最短路径的算法.它并不是一次求出源点到目标点的最短路径,而是一步步求出它们之间顶点的最短路径,过程中都是基于已经求出的最短路径的基 ...

  2. Choosing web framework: ASP.NET MVC vs Django Python vs Ruby on Rails(转载)

    来源:http://podlipensky.com/2012/06/choosing-web-framework-asp-net-mvc-vs-django-python-vs-ruby-on-rai ...

  3. 【SPFA与Dijkstra的对比】CDOJ 1961 咸鱼睡觉觉【差分约束-负权最短路径SPFA】

    差分约束系统,求最小值,跑最长路. 转自:https://www.cnblogs.com/ehanla/p/9134012.html 题解:设sum[x]为前x个咕咕中至少需要赶走的咕咕数,则sum[ ...

  4. python之requests urllib3 连接池

    0.目录 1.参考 2. pool_connections 默认值为10,一个站点主机host对应一个pool (4)分析 host A>>host B>>host A pag ...

  5. 解决win7 安装完jdk7后,再安装jdk8出现的问题 has value '1.8', but '1.7' is required.

    http://blog.csdn.net/qiyueqinglian/article/details/46605759 电脑装了jdk8,JAVA_HOME也是设置的8. 不删除8变回7. 改了JAV ...

  6. Codeforces 765F Souvenirs 线段树 + 主席树 (看题解)

    Souvenirs 我们将询问离线, 我们从左往右加元素, 如果当前的位置为 i ,用一棵线段树保存区间[x, i]的答案, 每次更新完, 遍历R位于 i 的询问更新答案. 我们先考虑最暴力的做法, ...

  7. NOI2018Day2T1 屠龙勇士 set 扩展欧几里德 中国剩余定理

    原文链接https://www.cnblogs.com/zhouzhendong/p/NOI2018Day2T1.html 题目传送门 - 洛谷P4774 题意 题解 首先我们仔细看一看样例可以发现如 ...

  8. Zipkin Server Configuration Using Docker and MySQL[转]

    Zipkin is a used for capturing timing data, it also has a centralized repository, and a microweb ser ...

  9. python面试题之Python是如何进行内存管理的

    python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要时,这个对象的引用计数为0时,它被垃圾回收. ...

  10. POJ2387 Til the Cows Come Home【Kruscal】

    题目链接>>> 题目大意: 谷仓之间有一些路径长度,然后要在这些谷仓之间建立一些互联网,花费的成本与长度成正比,,并且要使这些边连起来看的像一课“树”,然后使成本最大 解题思路: 最 ...