[UML]转:UML类图集中关系的总结
转:http://blog.csdn.net/dragonpeng2008/article/details/6836448
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency)
1. 泛化(Generalization)
【泛化关系】:是一种继承关系, 表示一般与特殊的关系, 它指定了子类如何特化父类的所有特征和行为. 例如:老虎是动物的一种, 即有老虎的特性也有动物的共性.
【箭头指向】:带三角箭头的实线,箭头指向父类
2. 实现(Realization)
【实现关系】:是一种类与接口的关系, 表示类是接口所有特征和行为的实现.
【箭头指向】:带三角箭头的虚线,箭头指向接口
3. 关联(Association)
【关联关系】:是一种拥有的关系, 它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子
关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
【代码体现】:成员变量
【箭头及指向】:带普通箭头的实心线,指向被拥有者
上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。
上图为自身关联:
4. 聚合(Aggregation)
【聚合关系】:是整体与部分的关系, 且部分可以离开整体而单独存在. 如车和轮胎是整体和部分的关系, 轮胎离开车仍然可以存在.
聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
【代码体现】:成员变量
【箭头及指向】:带空心菱形的实心线,菱形指向整体
5. 组合(Composition)
【组合关系】:是整体与部分的关系, 但部分不能离开整体而单独存在. 如公司和部门是整体和部分的关系, 没有公司就不存在部门.
组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期
【代码体现】:成员变量
【箭头及指向】:带实心菱形的实线,菱形指向整体
6. 依赖(Dependency)
【依赖关系】:是一种使用的关系, 即一个类的实现需要另一个类的协助, 所以要尽量不使用双向的互相依赖.
【代码表现】:局部变量、方法的参数或者对静态方法的调用
【箭头及指向】:带箭头的虚线,指向被使用者
各种关系的强弱顺序:
泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
下面这张UML图,比较形象地展示了各种类图关系:
转载于:https://www.cnblogs.com/lyggqm/p/5203559.html
[UML]转:UML类图集中关系的总结相关推荐
- 什么是UML、UML类图
1.什么是UML? UML是统一建模语言(Unified Modeling Language),是一种可视化的面向对象建模语言,是一种用来对真实世界物理进行建模的标准标记,用图形方式表现典型的面向对象 ...
- 什么是UML,UML类图
1.什么是UML? UML是统一建模语言,是一种可视化的面向对象建模语言,是一种用来对真实世界物理进行建模的标准标记,用图形方式表现典型的面向对象系统的整个结构.它的作用域不局限于支持面向对象的分析与 ...
- java uml图中的关系_UML类图中的关系
UML类图中的关系分为四种:泛化.依赖.关联.实现:关联关系又可以细化为聚合和组合. 1. 泛化(Generalization) 泛化是父类和子类之间的关系,子类继承父类的所有结构和行为.在子类中可以 ...
- 区分 UML 类图中的几种关系
区分 UML 类图中的几种关系 2010-12-23 作者:fnw 来源:网络 区分 UML 类图中的几种关系 UML 类图中的 "关联关系(association) &qu ...
- 通过简单例子 | 快速理清 UML类图中六大关系
类与类之间的六大关系 泛化 ( Generalization ) -> 表继承关系 实现 ( Realization ) 关联 ( Association ) 聚合 ( Aggregation ...
- UML图——类图(6中关系)
今天我们来看一下UML图中的类图. 先上一张图,通过这张图来解释类图. 面向对象设计一直以来有一句特别经典的话"高内聚,低耦合",想要搞明白这句话之前必须先搞明白关系 在探讨这个类 ...
- 一张图看明白UML类图中的6种关系
在UML类图中,有6种关系,分别是: (1)泛化(Generalization),简单说就是父类和子类的关系,extends/: (2) 实现(Realization),简单说就是接口和实现的关系,i ...
- UML类图中的六大关系:关联(单向、双向、自关联)、聚合、组合、依赖、继承、实现
一.类的属性的表示方式 在UML类图中,类使用包含类名.属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个A类,它包含c.d两个属性,以及methodA方法. 那么 ...
- Uml 理解Rational Rose软件中四种视图和Uml 9类图之间的关系
对于一个稍有规模的软件来说,列出系统内类之间的关系,对象之间的时序协作,有利于系统的梳理和扩展,使系统逻辑更有条理.下面这片文章对于四种视图的使用有提纲挈领而又不失详细的说明,可以一看. http:/ ...
- 【UML】UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的 ...
最新文章
- 电子时钟单片机c语言程序,51单片机电子时钟C语言程序
- 远程桌面与本地桌面实现文件传输
- Android 屏幕录制GIF脚本
- 群晖备份linux分区,数据丢失的后悔药,群晖NAS备份方案详解
- HashMap 中的一个“坑”!
- ubuntu 软件包管理工具 dpkg,apt-get,aptitude 区别
- 原生Android 侧滑菜单实践(部分)
- 1小时搞懂设计模式之工厂模式(方法工厂)
- 使用变量的值作为JS对象的属性名,从而获取其对应的值
- 日志存储 elasticsearch vs clickhouse
- cacti安装后修改说明
- python用于标识类方法的是_Python类的设计与使用
- comparator比较器用法_电压跟随器的这些点,确定都懂了吗?如果设计成同相端追随反向端会怎样? #运放...
- python表白程序-python告白程序
- 前端js生成自定义内容的PDF及word文件的实现
- 2020年12月-第02阶段-前端基础-CSS Day07
- Mac 系统mysql密码重置
- 算法开启栈转队列武魂
- 帝国时代(1)--献给曾经的游戏
- Oracle---SQL语句
热门文章
- 20170317起mvc功能学习
- 如何测试前台获得的数据
- 浅析B/S架构数据库连接方式
- javascript数据结构与算法--散列
- python的menu_Python Tkinter Menu使用教程 | 學步園
- 领域搜索算法java_多起点的局部搜索算法(multi-start local search)解决TSP问题(附Java代码及注释)...
- java 2 swing_Java Swing2 基本登錄框
- Linux 网络编程 常用socket函数详解 常用的函数讲解
- CryptoTab 服务器_宁畅AI服务器X640 首登MLPerf 斩获30项世界第一
- 线性规划 (一) 线性规划的基本形式及各种概念