`
jimmee
  • 浏览: 539995 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

UML中合成(Composition)和聚合(Aggregation)的区别

    博客分类:
  • J2SE
UML 
阅读更多
当一个类A使用了另一个类B时,到底是合成还是聚合的关系呢?
例如
public class A{
B b;
...
}
当一个A类型的对象销毁了其存储单元时,引用变量b也将销毁存储单元。但是b引用的对象是否也应当销毁存储单元?有两种情况需要考虑。
(1)合成(Composition):当一个A类型的对象销毁了存储单元时,b引用的对象也销毁存储单元。换句话说,b引用的对象的存在依赖于A类型的对象。
(2)聚合(Aggregation):当一个A类型的对象销毁了存储单元时,b引用的对象并没有销毁存储单元。换句话说,b引用的对象独立于于A类型的对象。
聚合的情况下,代码如下所示:
public class A{
   B b;

  public B sentB(){
      return b;
  }
  ....
}

用UML图表示时,合成和聚合是不一样,随便找一本UML的书看看就可以了。
分享到:
评论
1 楼 jiasky 2010-11-25  
http://www.iteye.com/topic/37302
阐述的很好。

相关推荐

    Association, Aggregation and Composition的区别

    Association、Aggregation 和 Composition 是 UML 类图中的三个重要元素,它们之间的区别非常重要。开发者需要了解这些元素的概念、特点和 Java 中的映射关系,以便更好地使用 UML 类图来设计和开发 Java 应用程序。

    UML 聚合和组合的区别

    UML 中的聚合和组合是两种重要的关联关系,它们之间的区别是很多开发者经常混淆的。以下是对 UML 聚合和组合的详细解释: 聚合(Aggregation) 聚合是一种特殊的关联关系,它描述的是一种部分与整体的关系。在这种...

    UML中依赖泛化关联实现聚合组合的C#实现

    聚合(Aggregation)是一种单向关系,聚合与关联的区别在于聚合的两个类之间的关系在概念层次上不是一个级别的。例如,Car 类和 Engine 类、Wheel 类之间的关系就是聚合关系。 ```csharp public class Car { ...

    [面试/笔试系列6]关联、聚合(Aggregation)以及组合(Composition)的区别

    ### 关联、聚合(Aggregation)以及组合(Composition)的区别 在面向对象设计中,类之间的关系是非常重要的概念。这不仅有助于理解系统架构,还能帮助开发者更好地组织代码。本篇文章将详细探讨关联、聚合...

    UML中类图中的几个关系

    UML(Unified Modeling Language),统一建模语言,是一种标准的图形化建模语言,被广泛应用于软件工程中,用于描述系统的结构和行为。在UML中,类图是一种重要的图形,用来展示系统中类、接口、协作以及它们之间的...

    UML类关系-依赖,关联,聚合和组合

    今天,我们将探讨UML类关系中的四种基本关系:依赖、关联、聚合和组合。 依赖(Dependency) 依赖关系是指一个类使用另一个类的对象或服务的关系。依赖关系是一种弱关系,表示一个类需要另一个类的支持,但不拥有...

    UML中的常用基础类图元素详细介绍大全

    UML 中的常用基础类图元素详细介绍大全 UML 中的类图是一种非常重要的模型,用于描述系统中的对象及其相互关系。类图元素是类图的基本组成部分,包括类、接口、包、关联、聚合、合成等。下面将详细介绍每种类图元素...

    UML元素与Java对照教程(高清PDF)

    类间关系描述了类与类之间的各种联系,包括依赖(Dependency)、关联(Association)、聚合(Aggregation)、合成(Composition)和泛化(Generalization)等。依赖关系指的是一个类使用另一个类,如果依赖关系发生...

    UML解惑:图说UML中的六大关系

    UML中的六大关系——依赖、泛化(类属)、关联、实现、聚合和组合,构成了理解软件系统结构的基础。 ### 依赖(Dependency) 依赖关系是最弱的一种关系,表示一个类(或组件、用例等)使用了另一个类的接口,这种...

    UML统一建模语言中依赖泛化关联实现聚合组合的C#实现_配UML图.doc

    本文将详细探讨UML中的一些关键概念,包括依赖、泛化、关联、聚合、组合以及实现,并结合C#语言给出具体实现示例。 1. 泛化(Generalization): 泛化关系在UML中代表了继承,它表示一个类(子类)继承自另一个类...

    UML 继承,实现,依赖,关联,聚合

    本文将深入探讨UML中的五个关键关系:继承、实现、依赖、关联和聚合,以及它们在软件设计中的作用。 1. **继承(Inheritance)**: 继承是面向对象编程的核心概念之一,它允许一个类(子类或派生类)从另一个类...

    UML类关系:依赖、关联、聚合、组合

    本文将深入探讨UML类关系中的四种关键概念:依赖、关联、聚合和组合,以及它们在软件设计中的应用。 1. 依赖(Dependency) 依赖是UML中最弱的一种关系,表示一个类(或对象)的实现或行为需要另一个类(或对象)的...

    UML中类图实例.docx

    在 UML 类图中,一个类通常由三部分组成:类名、属性(字段)和方法(操作)。类名位于矩形框的第一层,属性和方法分别位于第二层和第三层。例如,在“动物”矩形框中,类名为“Animal”,第二层显示其属性和方法。 ...

    UML distilled.pdf

    4. 聚合(Aggregation)和组合(Composition):聚合和组合都是类图中用来表示整体和部分关系的结构。聚合表示一种“拥有”的关系,但部分可以独立于整体存在。组合则是一种更强的“拥有”,部分不能独立于整体存在...

    UML类图的各符号含义及表示

    UML(Unified Modeling Language)是一种标准化的建模语言,用于软件开发过程中表示系统的结构和行为。类图是UML中最基础的图表之一,它用于描绘类与类之间的静态结构关系。下面我们将详细解释UML类图中各符号的含义...

    UML

    4. **迭代开发**:UML支持敏捷开发方法,允许在项目过程中不断调整和更新模型。 5. **软件质量保证**:通过建模,可以提前发现潜在的设计问题和冲突,提高软件的质量。 **应用实例** 在软件开发中,UML被广泛应用...

    uml简易中文教程

    - **聚合(Aggregation)**:一种特殊的关联,表示整体与部分的关系。 - **组合(Composition)**:更强烈的聚合形式,表示整体拥有部分,并对部分的生命周期有控制权。 - **依赖(Dependency)**:一个类依赖于另一...

    UML轻松教程(全)

    **UML(统一建模语言)**是一种标准的图形化建模语言,用于软件工程和其他领域,特别是系统分析和设计。它提供了一种可视化的方式来描述软件系统的结构和行为,使得团队成员之间能够更好地理解和交流设计理念。 **...

    uml和rose建模复习题

    - **类(Class)**:UML中的类代表了现实世界中的对象或概念,包含了属性(Attributes)和操作(Operations)。 - **对象(Object)**:类的实例称为对象,具有特定的属性值。 - **接口(Interface)**:定义了一...

Global site tag (gtag.js) - Google Analytics