如何画UML,几种简单的模型分析
如何画UML
前言
最近在学习设计模式,其中不免涉及到 UML,这里来复习下 UML 是如何画的。
UML
这里根据【大话设计模式中】中动物和鸟关系的例子,重新画了这个关系的 uml 类图

这里根据上面的这个例子,我们一一来展开分析
类
类是具有相似结构、行为和关系的一组对象的描述符,是面向对象系统中最重要的构造块

上面的图片,从第一格往下面分析
第一层 显示类的名称,如果是抽象类就用斜体表示
第二层 类的特性,通常是字段和属性
第三层 类的操作,通常是方法和行为
前面的符号需要我们特殊注意
- "+" 表示public
- "-" 表示private
- "#" 表示protected
类的关系
1、依赖关系
依赖关系,就是构造这个类的时候需要依赖其他的类,比如:动物,动物有新陈代谢,新陈代谢就需要依赖水,食物,氧气,所以动物依赖水和氧气,他们之间及时依赖关系。

2、继承关系
继承(泛化)关系,它指定了子类如何特化父类的所有特征和行为。用带空心三角形的实线表示。
图中的动物,鸟,鸭,唐老鸭之前的关系就是继承的关系

3、实现关系
一种类与接口的关系,表示类是接口所有特征和行为的实现。
用带空心三角形的虚线表示
例如:大雁实现了飞行的接口

棒棒糖表示法
接口还有另一种的表示方法俗称棒棒糖表示法

4、关联关系
所谓关联关系,就是这个类有一个属性是其他类。
用实箭线表示
例子:比如企鹅,在每年特定的季节才会下蛋,所以需要知道气候的变化。

5、聚合关系
聚合关系表示的是一种弱的'拥有'关系,是强的关联关系;
用带空心菱形的实线表示
特点: 部分对象的生命周期并不由整体对象来管理。也就是说,当整体对象已经不存在的时候,部分的对象还是可能继续存在的。比如:一只大雁脱离了雁群,依然是可以继续存活的。

6、组合关系
组合关系是一种强的'拥有'关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。
用带实心菱形的实线表示,线头的两端会有数字1和2,这被成为基数。表明这一端的类可以有几个实例。比如鸟有两个翅膀。

总结
这里通过动物这个例子,对 uml 中几种经常用到的模型做了简单的分析,总体看下来也不是很难
这里主要是参考【大话设计模式】,有时间的话建议花时间阅读下
参考
【大话设计模式】一本关于设计模式不错的书籍
如何画UML,几种简单的模型分析的更多相关文章
- [UML]转:浅谈UML的概念和模型之UML九种图
转自:http://blog.csdn.net/jiuqiyuliang/article/details/8552956 目录: UML的视图 UML的九种图 UML中类间的关系 上文我们介绍了,UM ...
- 讨论UML概念和模型UML九种图。
文件夹: UML的视图 UML的九种图 UML中类间的关系 上文我们介绍了,UML的视图.在每一种视图中都包括一个或多种图. 本文我们重点解说UML每种图的细节问题: 1.用例图(use case d ...
- 【转】浅谈UML的概念和模型之UML九种图
原文地址:浅谈UML的概念和模型之UML九种图 目录: UML的视图 UML的九种图 UML中类间的关系 上文我们介绍了,UML的视图,在每一种视图中都包含一个或多种图.本文我们重点讲解UML每种图的 ...
- [转]浅谈UML的概念和模型之UML九种图
目录: UML的视图 UML的九种图 UML中类间的关系 上文我们介绍了,UML的视图,在每一种视图中都包含一个或多种图.本文我们重点讲解UML每种图的细节问题: 1.用例图(use case dia ...
- UML_2_浅谈UML的概念和模型之UML九种图
转载:https://my.oschina.net/zhumenzhongren/blog/667353 上文我们介绍了,UML的视图,在每一种视图中都包含一个或多种图.本文我们重点讲解UML每种图的 ...
- 四步轻松实现用Visio画UML类图
本节和大家一起学习一下用Visio画UML类图的方法,主要有四个步骤,这里和大家分享一下,相信通过本节的学习,你对Visio画UML类图的步骤一定会有所了解. 用Visio画UML类图 对于画类图的工 ...
- UML九种图-包图、类图
UML九种图-包图.类图 一.包 (一)相关概念: 1.包: 一个包=一层=一个命名空间=一个文件夹 2.包的命名: 简单名:王老二 路径名:中国.河北省.廊坊市.廊坊师范学院.信息技术提高班.九期班 ...
- Visio画UML类图、序列图 for Java
参考文档: 1.百度搜索: 怎样用Visio 2007画C++类图 连接 https://jingyan.baidu.com/article/9f7e7ec07286e16f281554f7.html ...
- 论证与测试 + 用EA画uml
论证与测试,谁才是真正的不二法门 第十三次作业的时候,我们开始使用Junit对代码进行测试,主要是测试代码的覆盖率,以及分支的覆盖率.(主要是检查JSF写的是否是符合规范,……). 这里我给出我测试的 ...
随机推荐
- Ubuntu Server安装telnet服务时"Unable to locate package telnetd"解决方法
装好Ubuntu Server 12.04后,用apt-get安装telnetd报"E: Unable to locate package telnetd",解决方法如下: 虚拟机 ...
- Notes about "Exploring Expect"
Chapter 3 Section "The expect Command": expect_out(0,string) can NOT be written as "e ...
- 不懂Ribbon原理的可以进来看看哦,分析SpringBoot自动装配完成了Ribbon哪些核心操作
前面详细的给大家介绍了SpringBoot的核心内容,有了这部分的基础支持的话,我们再来分析SpringCloud中的相关组件就很容器了,本文我们来给大家开始介绍Ribbon的相关内容,首先来介绍 ...
- 【笔记】初探KNN算法(2)
KNN算法(2) 机器学习算法封装 scikit-learn中的机器学习算法封装 在python chame中将算法写好 import numpy as np from math import sqr ...
- vivo商城计价中心 - 从容应对复杂场景价格计算
一.背景 随着vivo商城的业务架构不断升级,整个商城较为复杂多变的营销玩法被拆分到独立的促销系统中. 拆分后的促销系统初期只是负责了营销活动玩法的维护,促销中最为重要的计价业务仍然遗留在商城主站业务 ...
- 题解 P3322 [SDOI2015]排序
题解 仔细审题,我们会发现 小 \(A\) 认为两个操作序列不同,当且仅当操作个数不同,或者至少一个操作不同(种类不同或者操作位置不同). 所以,对于一种操作,不管是交换哪两段,都算作同一种操作,只会 ...
- 题解 marshland
传送门 是个最大费用可行流 这题的建边很毒瘤 首先有危险度的点肯定要拆点 关键在于其它点怎么办 如果拆了不好保证每个点只经过一次 不拆连网络流都跑不了 但仔细观察题面,不能不难(???)发现一个L中那 ...
- 关于Eclipse中使用Maven进行Install安装时候报错Perhaps you are running on a JRE rather than a JDK?解决办法
所遇到的问题: 详情报错: 英文描述: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3. ...
- Docker是简介
Docker是什么 使用最广泛的开源容器引擎 一种操作系统级的虚拟化技术 依赖于Linux内核特性:Namespace(资源隔离)和Cgroups(资源限制) 一个简单的应用程序打包工具 D ...
- 简陋的Excel到MYSQL的数据传输JAVA实现
实现从excel读取数据,使用的是jxl.jar(到处都有,请大家随意下载),其中封装好了通过excel提供的接口,对excel中的数据库进行读取的实现: 先为了熟悉其中的方法使用,做了以下的测试: ...