UML简单介绍-如何看懂UML(一)
UML起源
UML逻辑原理

UML组成

UML常用关系
关联关系使用一条直线表示,比如 A与B关联
用于描述不同类的对象之间的结构关系,将多个类的实例联系在一起
是一种静态关系,基本与程序的运行没有关系
比如,部门与员工的关系,就是关联关系
关联关系一般不强调方向,表示互相“知道”对方,也就是存在引用
关联关系有多重性 比如一对一关联 一对多关联等 可以任意关联N对N关联
如果特别强调方向,就使用箭头,比如
![]() 那么表示A知道B但是B不知道A
也就是说,关联关系有两种图形
直线或者直线箭头
关联关系表示存在引用,比如员工类的定义中有“部门”属性字段
|
实现关系是带空心箭头的虚线表示的,比如A实现B,箭头指向父类、接口![]() 实现可以狭隘的认为是一种实现类与父类、接口的关系(其实在UML中实现的含义远不止实现类这层含义) |
泛化关系是带空心箭头的直线表示的,比如A继承B ![]() 用于说明继承关系 泛化关系是从子类到父类的关系,箭头指向的是父类 |
聚合关系是带空心的菱形的直线表示的,比如 A聚合到B上,也就是B由A组成![]() 聚合关系用于类图,表达整体由部分构成的语义,比如部门由许多人员组成 整体和部分不是强依赖的,即使整体不存在,依然可以存在部分,即使没有部门,人员仍旧存在 |
组合关系是带实心的菱形的直线表示的,比如A组合成B,或者说B由A构成![]() 表达整体拥有部分的含义,组合关系是一种特殊的强依赖的聚合关系 如果整体不存在,那么部分也不存在了 比如,汽车由轮胎底盘发动机构成,汽车不存在了,自然也不存在发动机了 |
依赖关系使用带箭头的虚线表示,比如 A依赖B![]() 用于描述一个对象在运行期间会使用到另外一个对象的关系 依赖关系是一种临时性的,简言之就是不同场景会发生变化 比如人和车 如果是驾驶场景,车依赖人(驾驶员),如果是乘车出行,那就是人依赖车(公交、出租) 很显然,依赖关系比关联关系更加弱 依赖关系是一种使用关系 比如一个类的方法中的局部变量、方法的参数或者对静态方法的调用,都是一种依赖 |
UML类的属性和方法
常用工具




总结
UML简单介绍-如何看懂UML(一)的更多相关文章
- UML简单介绍—类图详解
类图详解 阅读本文前请先阅读:UML简单介绍—类图这么看就懂了 1.泛化关系 一个动物类: /** * 动物类 */ public class Animal { public String name; ...
- 看懂UML类图与时序图
看懂UML类图和时序图 这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图 ...
- 看懂UML类图和时序图
看懂UML类图和时序图 这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图 ...
- 看懂UML图
看懂UML类图和时序图 这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图 ...
- [转] 看懂UML类图和时序图
PS: 组合关系:实心,一个类A属于另一个类,或多个类,但是类A不能单独存在去使用,A一般是一种抽象的东西 聚合关系:空心,一个类A可以单独存在使用 不论组合聚合,A的方法都会被直接调用. 看懂UML ...
- UML简单介绍—类图这么看就懂了
如何看懂类图 1.类图简介 描述类的内部结构和类与类之间的关系,是一种静态结构图. 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关 ...
- [转]看懂UML类图
这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图所表达的含义和最终的代码 ...
- (转)看懂UML类图
转自:http://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html 这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关 ...
- 看懂UML类图
这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图所表达的含义和最终的代码 ...
随机推荐
- MYSQL必知必会学习笔记
8.1.1 百分号( %)通配符最常使用的通配符是百分号( %).在搜索串中, %表示任何字符出现任意次数.例如,为了找出所有以词jet起头的产品,可使用以下SELECT语句:SELECT prod_ ...
- JAVA_AesCBC例子
import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.Secre ...
- over(partition by..) 的运用(转)
oracle的分析函数over 及开窗函数一:分析函数overOracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每 ...
- History of program
第一阶段:1950与1960年代 1.三个现代编程语言: (1)Fortran (1955),名称取自"FORmula TRANslator"(公式翻译器),由约翰·巴科斯等人所发 ...
- DOM-节点概念-属性
1.节点的概念 页面中的所有内容,包括标签,属性,文本(文字,空格,回车,换行等),也就是说页面的所有内容都可以叫做节点. 2.节点相关的属性 2.1.节点分类 **标签节点:**比如 div 标签, ...
- (一) sublime安装和使用
1 下载安装sublime 可以破解也可以不破解 2 html基础架子自动生成插件Emmet的安装 3 Emmet 安装失败解决 4 快捷键设置和汇总 4 其他sublime插件汇总
- mongodb建立索引
创建索引 索引:以提升查询速度 语法:db.集合.ensureIndex({属性:1}),1表示升序,-1表示降序 具体操作:db.t255.ensureIndex({name:1}) db.t1.f ...
- 总结css
一.背景 1. background-color: 背景颜色 2.background-image 设置图像为背景 url("http://images.cnblogs.com/cnb ...
- python编程从入门到实战1-3章
print('hellow world') """ 多行注释"""#大小写print('i love you')mssage='hellow ...
- 算法与数据结构(三) 二叉树的遍历及其线索化(Swift版)
前面两篇博客介绍了线性表的顺序存储与链式存储以及对应的操作,并且还聊了栈与队列的相关内容.本篇博客我们就继续聊数据结构的相关东西,并且所涉及的相关Demo依然使用面向对象语言Swift来表示.本篇博客 ...