UML--类之间的五种关系
UML中的关系(Relationships)主要包括5种:关联关系、聚合关系、依赖关系、泛化关系、实现关系
1.关联(Association)关系
关联关系是一种结构化的关系,指一种对象和另一种对象有联系。它使一个类知道另一个类的属性和方法。
关联关系有双向关联和单向关联。
双向关联:两个类都知道另一个类的公共属性和操作。
单向关联:只有一个类知道另一个类的公共属性和操作。
大多数关联应该是单向的,单向关系更容易建立和维护,有助于寻找可复用的类。
UML图中实现使用一条实线连接相同或不同类。如图:
→聚合(Aggregat ion)关系
聚合也称聚集,是关联的特例。表示类与类之间的关系是整体与部分的关系,即一个表示整体的模型元素
可能由几个表示部分的模型元素聚合而成。
共享聚合:如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集成为共
享聚合。
复合聚合(简称为组成):如果部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之
消失(或失去存在价值),则该类聚集成为复合聚合。
普通关联关系的两个类处于同一层次上,而聚合关系的两个类处于不同层次:一个整体,一个部分。同时,
是一种弱的”拥有“关系。此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属
于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等。表现在代码层
面,和关联关系是一致的,只能从语义级别来区分。
UML图中聚合使用一条带有虚心菱形的线来表示。如图:
2.依赖(Dependency)关系
依赖关系描述两个模型元素(类、用例等)之间的语义关系:其中一个模型元素是独立的,另一个模型元
素不是独立的,它依赖于独立的模型元素,如果独立的模型元素改变,将影响依赖于它的元素。
例如:如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。
UML图中依赖使用一条右箭头的虚线指向被依赖的类。如图:
3.泛化(Generalization)关系
UML中的泛化关系定义了一般元素和特殊元素之间的分类关系,与C++及Java中的继承关系有些类似。
具体形式为类与类之间的继承关系,接口与接口之间的继承关系,类对接口的实现关系。
泛化可分为普通泛化和受限泛化。
UML图中泛化使用一条带有空心三角箭头的实现指向基类。如图:
4.实现(Realization)关系
实现关系将一种模型元素(如类)与另一种模型元素(如接口)连接起来,其中接口只是行为的说明而
不是结构或者实现。真正的实现由前一个模型元素来完成。
或者理解为:一个类实现接口(可以是多个)的功能;
实现是类与接口之间最常见的关系,在以下两种地方会经常遇到:
(1)一种是在接口和实现它们的类或构件之间;
(2)一种是在用例和实现它们的协作之间。
UML图中实现使用一条带有空心三角箭头的虚线指向接口。如图:
UML--类之间的五种关系相关推荐
- UML 类之间的几种关系
2019独角兽企业重金招聘Python工程师标准>>> 许久不用uml,又忘记这部分资料了,现给记录下.本资料为引用资料,传送门:http://uml.org.cn/oobject/ ...
- 类与类之间的几种关系
http://www.cnblogs.com/liuling/archive/2013/05/03/classrelation.html 类与类之间的几种关系 一.继承关系 继承指的是一个类 ...
- 【UML】例析UML类图的几种关系
最近在学习UML,别的先不提,英文单词到是学会了不少..既然Rational Rose就是英文版的,索性我就所有东西都按照英文意思来理解,慢慢来,当初学VB的时候我也不是一下子就能记住Label的.. ...
- 面向对象类和类之间的几种关系
一.继承关系 继承指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力.在Java中继承关系通过关键字extends明确标识,在设计时一 ...
- UML中类之间的几种关系
类之间可能存在以下几种关系:关联(association).依赖(dependency).聚合(Aggregation,也有的称聚集).组合(Composition).泛化(generalizatio ...
- [转] UML类图的几种关系总结
在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition ...
- UML类图、6种关系
目录 一,类图 二,类的6种关系 1,泛化 2,实现 3,组合 4,聚合 5,关联 6,依赖 三,总结 一,类图 类图中,每个类由3个部分组成,上面的是类名,中间的是属性,下面的是方法. 属性和方法可 ...
- 浅谈UML类图中类之间的5种关系
什么是UML类图? 类图显示了一组类.接口.协作以及他们之间的关系.在UML中问题域最终要被逐步转化,通过类来建模,通过编程语言构建这些类从而实现系统.类加上他们之间的关系就构成了类图,类图中还可以包 ...
- UML类图五种关系与代码的对应关系
UML类图中的五种关系的耦合强弱比较:依赖<关联<聚合<组合<继承 一.依赖关系: (一)说明 虚线+箭头 可描述为:Uses a 依赖是类的五种关系中耦合最小的一种关系. 因 ...
最新文章
- hibernate的映射之二(一对多双向关联)
- html开发文档工具栏,添加应用栏和工具栏 (HTML)
- halcon模板匹配学习(二) 准备模板
- HDU1232 畅通工程
- 危险的两个函数GetCurrentDirectory和GetParent
- 三星Galaxy Note 20系列将首发Exynos 992:性能超骁龙865
- pfSense修改mbuf值
- matplotlib 使用简明教程(三)-一些专业图表简介
- 新系统软件著作权申请详细步骤
- Selenium_python 断言
- FusionStorage原理及组件
- 黄敏思先生讲解《保证CAN运行稳定的核心设计与测试》
- vivo x9s支持html,vivo X9s屏幕材质_vivo X9s屏幕分辨率-太平洋IT百科
- C++中指针前还加是什么意思
- 爱尔兰都柏林大学计算机科学专业,爱尔兰都柏林大学专业介绍
- 2020全国计算机考试ps版本,2020年3月计算机等级Photoshop练习题及参考答案
- 打印系统开发(63)——C# 实现虚拟打印机 HP Color LaserJet 4500 (2) True Type Font字体显示
- java找不到返回值_java.lang.IllegalArgumentException:找不到类型返回值的转换器
- C语言的return用法
- 华钜同创:亚马逊滞销产品快速清仓的方法!
热门文章
- 福布斯评最佳与最差老板 TCL上黑榜
- 【Java数据结构】计算机中数据的存储方式(为什么要使用B树)
- DB2-407 SQLCODE: -407, SQLSTATE: 23502
- 海龟交易法则02_揭秘海龟思维
- 读书笔记_量化交易如何建立自己的算法交易02
- flex应用中如何关闭浏览器
- win8卸载mysql数据库,彻底卸载win8自带的metro应用的方法
- mono for android定义,2.1.3 使用Mono for Android的原因
- python 函数调用之后,赋值不变,只是引用。全局变量和局部变量(一分钟读懂)
- java 数据库 下载_数据库下载