UML类图几种关系的总结
来源:互联网 发布:如何查看知乎注册时间 编辑:程序博客网 时间:2024/06/05 18:11
转自:http://blog.csdn.net/tianhai110/article/details/6339565
在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)
一、关系的表示方法
1.泛化(Generalization)
【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.
【箭头指向】:带三角箭头的实线,箭头指向父类
2.实现(Realization)
【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现
【箭头指向】:带三角箭头的虚线,箭头指向接口
3.关联(Association)
【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子
关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
【代码体现】:成员变量
【箭头及指向】:带普通箭头的实心线,指向被拥有者
上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。
上图为自身关联:
4. 聚合(Aggregation)
【聚合关系】:是整体与部分的关系.如车和轮胎是整体和部分的关系.
聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
【代码体现】:成员变量
【箭头及指向】:带空心菱形的实心线,菱形指向整体
5. 组合(Composition)
【组合关系】:是整体与部分的关系.,没有公司就不存在部门 组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期
【代码体现】:成员变量
【箭头及指向】:带实心菱形的实线,菱形指向整体
6. 依赖(Dependency)
【依赖关系】:是一种使用的关系,所以要尽量不使用双向的互相依赖。
【代码表现】:局部变量、方法的参数或者对静态方法的调用
【箭头及指向】:带箭头的虚线,指向被使用者
各种关系的强弱顺序:
泛化= 实现> 组合> 聚合> 关联> 依赖
下面这张UML图,比较形象地展示了各种类图关系:
二、几种关系的区别
1、关联关系与依赖关系的区别
UML类图依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的事物,反之不成立。是两个元素之间的一种关系,其中一个元素(服务者)的变化将影响另一个元素(客户),或向它(客户)提供所需信息。
依赖用一个从客户指向提供这的虚箭头表示,用一个构造型的关键字来区分它的种类。
通常表现为局部变量、方法参数、调用类的静态方法。
UML类图关联关系是一种结构化的关系,指一种对象和另外一种对象有联系,给定有关联的两个类,可以从一个类的对象得到另一个类的对象。关联有一对一的关系和一对多的关系。关联关系是整个系统中使用的“胶粘剂”,如果没有它,那么只剩下不能一起工作的孤立的类。
2、聚合与组合之间的关系
- UML--UML类图几种关系的总结
- UML类图几种关系的总结
- UML类图几种关系的总结
- UML类图几种关系的总结
- UML类图几种关系的总结
- UML类图几种关系的总结
- UML类图几种关系的总结
- UML类图几种关系的总结
- UML类图几种关系的总结
- UML类图几种关系的总结
- UML类图几种关系的总结
- UML类图几种关系的总结
- UML类图几种关系的总结
- UML类图几种关系的总结
- UML类图几种关系的总结
- UML类图几种关系的总结
- UML类图几种关系的总结
- UML类图几种关系的总结
- UNPv2第五章:Posix消息队列
- Java中的注解是如何工作的?
- tomcat内存设置之startup.bat启动方式
- VS2015使用小技巧 让VS默认每句话都checked,检查溢出
- UIButton 无法点击的问题
- UML类图几种关系的总结
- Troubleshooting 'library cache: mutex X' waits. (文档 ID 1357946.1)
- Android EditText的inputType属性值
- hdu-1174 爆头(计算几何)
- JS的跨域请求
- struts2中action接收参数的方法
- 搭建本地yum源(http方式) on Red Hat Enterprise Linux Server
- CNN入门之cnn架构和cnn卷积、采样
- UNPv2第六章:System V 消息队列