加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 程序设计 > 正文

类图,聚合和组合的区别

发布时间:2020-05-23 13:17:14 所属栏目:程序设计 来源:互联网
导读:一直以来,对UML的东西总是模棱两可,对于类图中的聚合和组合,知道两种的区别,但过一段时间后总是分不清两者谁是谁,唉,主要怪自己的语文没有学好,呵呵! 其实,对于聚合和组合,如果换成英文,就很好理解了:聚合就是“has-a”,组合就是“contains-a”

一直以来,对UML的东西总是模棱两可,对于类图中的聚合和组合,知道两种的区别,但过一段时间后总是分不清两者谁是谁,唉,主要怪自己的语文没有学好,呵呵!

其实,对于聚合和组合,如果换成英文,就很好理解了:聚合就是“has-a”,组合就是“contains-a”。

聚合是空心的菱形;组合是实心的菱形(这个比较好理解,实心的肯定比空心的扎实,哈哈)。

摘录一段话:

聚合和组合的区别在于:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。

我们用浅显的例子来说明聚合和组合的区别。“国破家亡”,国灭了,家自然也没有了,“国”和“家”显然也是组合关系。而相反的,计算机和它的外设之间就是聚合关系,因为它们之间的关系相对松散,计算机没了,外设还可以独立存在,还可以接在别的计算机上。在聚合关系中,部分可以独立于聚合而存在,部分的所有权也可以由几个聚合来共享,比如打印机就可以在办公室内被广大同事共用。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读