博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UML关系图
阅读量:6451 次
发布时间:2019-06-23

本文共 685 字,大约阅读时间需要 2 分钟。

回忆下UML图

继承

 接口实现

 

 

接下来是类与类的关系(从弱到强)

倚赖(dependency):

类与类之间的连接,表示一个类依赖于另外一个类的定义,依赖关系时是单向的

简单理解就是类A使用到了类B,这种依赖具有偶然性、临时性,是非常弱的关系。

在java中表现为:

1.局部变量

2.方法中的参数

3.对静态方法的调用

关联(association)

关系表示类与类之间的连接,它使得一个类知道另外一个类的属性和方法

关联关系体现的是两个类,或者类与接口之间的强依赖关系,这种关系很强烈,比依赖更强,不是偶然性的,也不是临时性的,而是一种长期性,相对平等的关系。

Java中表现

1.使用实例变量

聚合(aggregation)

是关联关系的特例,是强的关联关系,聚合是整个与个体的关系,即has-a关系(is-a是继承),此时整体和部分是可以分离的,他们具有各自的生命周期,部分可以属于多个对象,也可以被多个对象共享;

比如计算机和CPU,公司与员工的关系;

与关联代码层面一致。

 

组合(compostion)

是关联关系的一种特例,体现的是一种contain-a关系。它同样体现整体与部分的关系,但此时整体与部分是不可分的,整体生命周期的结束也意味着部分生命周期的结束,反之亦然。

与关联代码层面一致。

组合/聚合区别:

组合“部分”不能脱离“整体”单独存在,其生命周期应该是一致的。

聚合“部分”可以脱离“整体”单独存在,他们具有各自的生命周期。

 

转载于:https://www.cnblogs.com/Gang-Bryant/p/10785139.html

你可能感兴趣的文章
MYSQL的limit和offset
查看>>
基于Corosync + LNMP + NFS 服务实现高可用
查看>>
Python 多线程
查看>>
[java理论篇]--JAVA反射机制
查看>>
PostgreSQL的HA(主备切换)
查看>>
安装Office2010/2007出现1935错误解决办法
查看>>
使用rpm包安装配置 LAMP
查看>>
如何利用PS脚本查询和管理硬盘空间
查看>>
AFN获取数据后刷新TableView
查看>>
我的友情链接
查看>>
vsftpd添加新用户
查看>>
Math 单元下的公用函数目录
查看>>
WinAPI: CreatePatternBrush - 建立位图画刷
查看>>
PHP配置文件详解php.ini
查看>>
mount: could not find filesystem '/dev/root'
查看>>
网站上线流程
查看>>
Zabbix触发器支持的函数说明
查看>>
第一次换工作
查看>>
Java之美[从菜鸟到高手演变]之设计模式二
查看>>
python的数字签名示例
查看>>