【UML】如何记忆UML类图的画法
前言
UML类图形象反映系统类之间的关系,大家非常常用。小弟不才,偶尔使用,往往每次使用都得查询各种关系的表示方式。终于,这次认真看了几遍,打算记起来。
注意
记忆方法只是本人联想,用于加强记忆。与该表示方式的来源没有半点关系。
元素
类和接口
- +表示public,-表示private。正代表公开,负代表私密,很正常。
类之间的各种关系
泛化、实现
- 泛化(可以看成继承)和实现都用三角形来表示。
- 实现,由“无实现”到“有实现”。没东西是不是比较虚啊,所以用的是虚线。
- 泛化,原来就有实现,只不过在此基础上扩展。本身就很强,用实线。
- 在Java中的表现,泛化,就是继承;实现,就是实现嘛,被实现的可以是接口,或抽象类。
聚合、组合
- 聚合、组合都是用菱形表示。他们都是多个对象聚集而成,所以体积比较大,你看菱形是不是比三角形、箭头要大一点。
- 两者都是用实线。
- 聚合,是聚集起来合成在一起的。比如人员聚集起来合成一个团队,如果团队解散了,但人员还存在。是弱依赖关系,所以用空心的菱形。
- 组合,是(结构)组成合成在一起的。比如树木组成森林,如果森林消失了,树木也消失了。是强依赖关系,所以用实心的菱形。
关联、依赖
- 关联、依赖都是由箭头表示(除了箭头,也想不到其他更合适的了)。
- 关联,是静态的、非运行时的关系(什么是非运行时的关系?用Java代码来说,A关联B,那么B是A的一个属性,顿时领悟了吧)。那么稳定的关系,当然用实线了。
- 依赖,是临时的、运行时的关系(用Java代码来说,就是参数嘛),临时的关系,用虚线表示也合理。
参考的资料
- 《看懂UML类图和时序图》,http://www.cnblogs.com/me115/p/4092632.html
- 《解析UML类图符号意义》,http://blog.csdn.net/l_nan/article/details/37036787
【UML】如何记忆UML类图的画法的更多相关文章
- UML学习笔记:类图
UML学习笔记:类图 有些问题,不去解决,就永远都是问题! 类图 类图(Class Diagrame)是描述类.接口以及它们之间关系的图,用来显示系统中各个类的静态结构. 类图包含2种元素:类.接口, ...
- UML基础系列:类图
类图描述系统中类的静态结构,它不仅定义系统中的类,描述类之间的联系,如关联.依赖.聚合等,还包括类的内部结构(类的属性和操作).类图描述的是静态关系,在系统的整个生命周期中都是有效的.对象图是类图的实 ...
- Uml 建模 一(类图建模和startuml的使用)
本文将分三个部分介绍Uml建模:Uml建模的作用.类图.startuml的使用 Uml的作用 本文以java为例介绍Uml,在当前的软件开发中大多数使用面向对象开发(OO),面向对象的就是将现实世界中 ...
- UML类图基本画法
转自:http://www.cnblogs.com/import-this/p/5330501.html 1. 类 类包括属性方法 下图的生命就是属性 代谢就是方法 2.基本关系 a.泛化(Gener ...
- UML类图的画法
http://blog.csdn.net/kevin_darkelf/article/details/11371353
- UML类图画法及其之间的几种关系(转)
UML类图画法及其之间的几种关系 最近做重构项目,需要画一下类图,发现类图的画法及其之间的几种关系已经淡忘了很多,所以整理总结一下,有问题的地方大家可以一起讨论下. 文章目录如下: 类图画法 类之间的 ...
- UML类图画法及其之间的几种关系
最近做重构项目,需要画一下类图,发现类图的画法及其之间的几种关系已经淡忘了很多,所以整理总结一下,有问题的地方大家可以一起讨论下. 文章目录如下: 类图画法 类之间的几种关系:泛化(Generaliz ...
- [UML]UML系列——类图Class
相关文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) 一.类图的概念及组成 1.类图的概念 类图是描述类.接 ...
- (转)面向对象——UML类图设计
背景:一直以来,对UMl类图的画法不甚理解,但是随着学习的深入,发现熟练掌握UML类图,能够更好理解代码间的逻辑性,而这也是程序设计的基础所在,所以很有必要把UML好好掌握. UML类图新手入门级介绍 ...
随机推荐
- 用vs2013编译lua源码方法(一)
用vs2013编译lua源码方法 来源:网络 编辑:admin 1.下载lua源码:lua-5.2.3.tar.gz,解压 2.用vs2013建立一个win32工程: 1)下载后解压到一个目录下 ...
- iOS -- AVAudioPlayer播放音乐
一. AVAudioPlayer: 声明音乐控件AVAudioPlayer,必须声明为全局属性变量,否则可能不会播放,AVAudioPlayer只能播 ...
- String-原型属性
<script> /*将trim方法定义到字符串对象中 *使用字符串的原型属性来完成 *原型prototype:就是该对象的一个描述,该描述中如果添加新功能,那么该对象就具备这些新功能. ...
- HTML中禁用表单控件的两种方法readonly与disabled
时候我们会希望表单上的控件是不可修改的,比如在修改密码的网页中,显示用户名的文本框就应该是不可修改状态的,下面与大家分享下禁用表中控件的两种方法 在网页的制作过程中,我们会经常使用到表单.但是有时候我 ...
- JavaScript 入门教程二 在HTML中使用 JavaScript
一.使用 <script> 元素的方式有两种:直接在页面中嵌入 JavaScript 代码和引用外部 JavaScript 文件. 二.使用内嵌方式,一般写法为: <script t ...
- asp.net identity 2.2.0 中角色启用和基本使用(六)
创建用户管理相关视图 第一步:添加视图 打开UsersAdminController.cs 将鼠标移动到public ActionResult Index()上 右键>添加视图 系 ...
- C使用相关笔记
#将c文件编译成动态库 //hello.c int hello_add(int a, int b) { return a + b; } gcc -O -c -fPIC -o hello.o hello ...
- 如何配置Eclipse+Tomcat 开发环境【转】
...
- KVC和KVO大优点
都是动态的,运行时检查,给予了极大的方便
- 安装php扩展库
无法加载'pdo_mysql' ,因为需要pdo这个module.PHP Warning: Cannot load module 'pdo_mysql' because required module ...