以下内容,部分是自己整理,部分转自网络
关联--依赖、组合--聚合
依赖 --> 关联 --> 聚合 --> 组合
依赖:最弱的关联关系,在代码上的体现就是 方法的参数传递或者是临时变量
关联: 稍强的关联关系,在代码上的体现就是属性关系,两者是平等的关系
聚合:强调的整体和部分的关系,但生命周期不同而已。
组合:最强的关联关系,也是整体和部分关系,但是两者生命周期是相同的。
关联和聚合之间关系
关联和聚合的区别主要在语义上,关联的两个对象之间一般是平等的,例如你是我的朋友,聚合则一般不是平等的,例如一个公司包含了很多员工,其实现上是差不多的。聚合和组合的区别则在语义和实现上都有差别,组合的两个对象之间其生命期有很大的关联,被组合的对象是在组合对象创建的同时或者创建之后创建,在组合对象销毁之前销毁。一般来说被组合对象不能脱离组合对象独立存在,而且也只能属于一个组合对象,例如一个文档的版本,必须依赖于文档的存在,也只能属于一个文档。聚合则不一样,被聚合的对象可以属于多个聚合对象,例如一个员工可能可以属于多个公司
聚合和组合之间关系
聚合:指的是整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构。从而找出一些组成类,该整体类和组成类之间就形成了聚合关系。例如一个航母编队包括海空母舰、驱护舰艇、舰载飞机及核动力攻击潜艇等。需求描述中“包含”、“组成”、“分为…部分”等词常意味着聚合关系。
组合:也表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在。部分对象与整体对象之间具有共生死的关系。
聚合和组合的区别在于:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。
聚合这种关系是被包含的对象的个数是 0..* 而组合是 1..*
我们用浅显的例子来说明聚合和组合的区别。“国破家亡”,国灭了,家自然也没有了,“国”和“家”显然也是组合关系。而相反的,计算机和它的外设之间就是聚合关系,因为它们之间的关系相对松散,计算机没了,外设还可以独立存在,还可以接在别的计算机上。在聚合关系中,部分可以独立于聚合而存在,部分的所有权也可以由几个聚合来共享,比如打印机就可以在办公室内被广大同事共用
一个通俗的例子:
你和你的心脏之间是composition关系(心脏只属于你自己)
你和你买的书之间是aggregation关系(书可能是别人的)
你和你的朋友之间是association关系
分享到:
相关推荐
《UML笔记本电脑销售与服务系统详解》 在IT行业中,设计和开发高效、功能完善的系统是至关重要的。本文将深入探讨"UML笔记本电脑销售与服务系统",旨在为相关人员提供宝贵的指导和理解。UML(统一建模语言)是一种...
Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,...
**UML(统一建模语言)**是一种标准的图形建模语言,用于软件工程和其他领域,特别是用于描述软件系统的设计和结构。UML提供了一种可视化的方式来表达系统模型,包括其组件、行为和关系,从而促进团队之间的沟通和...
**UML建模技术概述** UML(统一建模语言)是软件开发中的一种标准化建模语言,用于可视化、规格化和构建系统模型。它由Rational Software Corporation的Grady Booch、Ivar Jacobson和James Rumbaugh共同创建,后来...
统一建模语言及工具自记笔记; 单纯当做云盘使用,需要的可以私我私发给你
以下是对“个人UML学习读书笔记”中可能涵盖的知识点的详细阐述:** 1. **UML简介** - UML是由Grady Booch、Ivar Jacobson和James Rumbaugh共同开发的,目的是提供一个标准的图形化语言,使得软件开发者能够清晰地...
**UML笔记3:组件图与配置图详解** 在软件工程中,统一建模语言(UML)是一种标准的建模方法,用于描述系统的设计、结构和行为。本笔记将聚焦于UML中的两个关键图表——组件图和配置图,它们在系统分析和设计过程中...
本人一菜鸟的学习笔记 仅当学习纪录,,,有兴趣者可以自行下载察看 不喜者 勿喷
**UML精粹笔记概述** UML(统一建模语言)是软件开发中的一种标准化建模工具,用于可视化、理解和构建复杂系统。本笔记主要涵盖了UML的核心概念和图形表示,包括类图、时序图、对象图、包图、部署图、用例、状态机...
《UML大象读书笔记》是一篇关于理解和应用UML(Unified Modeling Language)的深度学习笔记,作者通过阅读《UNL大象》这本书,分享了对UML基础和面向对象方法的见解,以及个人的理解和认知。 面向对象方法是现代...
总的来说,圣思源的OODA和UML笔记提供了深入理解和应用这两个重要概念的资源,对于提升Java Web开发者的项目设计能力和技术水平具有极大价值。学习和掌握这些知识,可以帮助开发者构建更加高效、灵活且易于维护的...
UML的十种图(类图,对象图,用例图,包图,协作图,时序图等)pdf格式
### UML学习笔记知识点 #### 一、UML概述与重要性 - **定义**: 统一建模语言(Unified Modeling Language, UML)是一种标准化的建模语言,用于描述和构建软件系统的结构和行为。它由一组图表、符号和规则构成,...
### UML基础知识与应用 #### 什么是UML? UML(Unified Modeling Language)是一种标准语言,用于指定、可视化、构建和记录软件系统、业务建模以及其他非软件系统的工件。UML代表了一系列在大型和复杂系统建模中...
**UML(统一建模语言)笔记** UML,全称为Unified Modeling Language,是一种标准化的通用建模语言,用于软件开发中的系统分析、设计和可视化。它为软件开发者提供了一种图形化的表达方式,帮助他们更好地理解和...
《UML与UP读书笔记》是对面向对象设计与软件开发过程两种重要工具——统一建模语言(Unified Modeling Language,简称UML)和统一过程(Unified Process,简称UP)的深度学习与理解的结晶。这份笔记涵盖了UML的核心...
**UML笔记2:状态图、活动图、协作图、组件图、配置图详解** **一、状态图(State Diagram)** 状态图是UML(统一建模语言)中用于描述对象在其生命周期中的行为,特别是在不同状态之间的转换。它显示了一个对象...
**UML建模个人总结笔记** UML(Unified Modeling Language),统一建模语言,是软件开发过程中用于系统分析和设计的一种标准化图形表示工具。它提供了一种通用的、直观的图形化语言,使得开发团队可以有效地沟通和...
大象学习笔记