Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2451|回复: 4
打印 上一主题 下一主题

UML图例说明

[复制链接]

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
楼主
发表于 2017-10-25 16:21:39 | 显示全部楼层
回复 支持 反对

使用道具 举报

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
沙发
发表于 2017-10-26 09:44:41 | 显示全部楼层
UML类图关系详解类之间关系、依赖、聚合、组合、泛化、关联

一、背景介绍
        UML类图的关系,或者说面向对象语言中,静态类之间的关系有哪些,他们之间的区别在哪里,这是本文要解决的问题点。

二、类之间关系
      有泛化、继承(非UML标准中)、实现、依赖、关联、聚合、组合七种关系,下面逐个介绍这些概念。


1. 泛化
泛化是对一些具体的个体的一般化,抽象化,是由具体的给他抽象出共性的过程。

2. 继承
继承是一个类(称为子类或子接口)继承另一个类(称为父类或父接口)里面的所有属性和方法,在增加自己特性的过程。

3. 实现
实现是一个类 class 去实现一个接口 interface

4. 依赖
可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用

5. 关联
他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量

6. 聚合
聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分

7. 组合
组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区分

三、自己的理解
1. 继承和泛化的区别,其实就是一回事,子类和父类直接的关系。只是继承是从子类的角度来说,泛化是从父类的角度来说
2. 实现很简单,就是一个类实现一个接口,没什么可说的
3. 依赖、关联、聚合和组合的区别


http://825635381.iteye.com/blog/2397486

回复 支持 反对

使用道具 举报

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
板凳
发表于 2019-5-12 11:14:52 | 显示全部楼层

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-5-5 05:02 , Processed in 0.060179 second(s), 20 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表