`
arthurln
  • 浏览: 43455 次
社区版块
存档分类
最新评论

关联(Association)、聚合(Aggregation)与组合(Composite)

阅读更多
  对于关联(Association)、聚合(Aggregation)与组合(Composite)的区别一直不是十分的明确。平时也经常画UML图,但多用于项目组内说明,都是随便选一个凑合着用了。今天参考了一些资料,大概算是把它们分清楚了。
  这三者都表示对象之间的联系,只是程度不同。
  关联表示对象之间的使用关系,比如对象A的方法调用中需要传入对象B的实例。
  聚合表示一种整体与部分的关系,但整体并不管理部分的生命周期。比如在历史课与学生的关系中,历史课持有学生,下课了,历史课没有了,学生仍然存在。程序中的聚合一般指从外部获得的全局的对象(如从构造方法或者Setter方法中获得)。
  组合与聚合类似,区别就是组合的整体管理部分的生命周期。比如房子与房间。当整体被销毁的时候,部分要么被销毁要么由整体将其控制权让出。程序中的组合一般指内部创建的,供自己使用的对象。
分享到:
评论

相关推荐

    软件体系结构与设计模式课堂笔记.docx

    聚合(Aggregation)是关联的特例,表示整体与部分的关系,如公司与员工,用带空心菱形头的实线表示。组合(Composition)比聚合更强烈,表示部分与整体的生死关联,如汽车与发动机,用带实心菱形头的实线表示。 ...

    IBM-ETP-java培训12.UML 类图.ppt

    2. 聚合(Aggregation):一种特殊的关联,表示整体与部分的关系,如“公司”与“员工”的关系。 3. 组合(Composition):比聚合更强的关联,表示整体与部分的强依赖,如“汽车”与“发动机”的关系。 4. 泛化...

    UML的关系,基础

    组合也是整体与部分之间的关系,但它比聚合更强烈,表示部分不能独立存在,它们的生命期由整体控制。组合用实心菱形箭头表示。例如,汽车和发动机,汽车组合了发动机,没有汽车,发动机就失去了存在的意义。 5. **...

    UML distilled.pdf

    它展示了系统中类的属性、操作(方法)和类之间的关系,如关联(Association)、依赖(Dependency)、聚合(Aggregation)和组合(Composition)。类图在软件工程中非常重要,因为它直接反映了系统设计的核心要素。 ...

    UML Distilled Third Edition

    - **聚合(Aggregation)** 和 **组合(Composition)**:都是特殊形式的关联,表示整体与部分之间的关系。 - **聚合**:表示“has-a”关系,部分可以独立于整体存在。 - **组合**:表示更强烈的“owns-a”关系,部分...

    webMethods 9.0 _ CentraSite 9.0 SP1_混合资产

    - **关联关系使用场景(Association Relationship usage scenarios)**:解释了如何建立和维护简单的关联关系。 - **聚合关系使用场景(Aggregation Relationship usage scenarios)**:介绍了如何管理和利用聚合关系来...

    UML教程.rar

    此外,UML还包含了一些重要的概念,如泛化(Generalization)、实现(Realization)、依赖(Dependency)、关联(Association)、聚合(Aggregation)和组合(Composition)等。这些关系描述了系统组件之间的静态和...

    UML期末复习

    这些元素包括类(Class)、对象(Object)、接口(Interface)、关联(Association)、聚合(Aggregation)、组合(Composition)、依赖(Dependency)、泛化(Generalization)和实现(Realization)。其中,类和...

    UML Distilled A Brief Guide to the Standard Object Modeling Language, Third Edition 2003

    - **组合(Composition)**:比聚合更紧密的关联形式,表示部分与整体之间不可分割的关系。 - **泛化(Generalization)**:表示继承关系,子类继承父类的属性和行为。 - **实现(Realization)**:类与接口之间的...

    大学上课用的UML课件

    - **聚合(Aggregation)**:一种特殊的关联,表示整体与部分的关系,如“班级”与“学生”的聚合。 - **组合(Composition)**:更强烈的聚合形式,表示拥有关系,如“汽车”与“引擎”的组合。 - **依赖...

    UML基础教程

    - 类的表示包括类名、属性(Attribute)和操作(Operation),以及类间的关系如继承(Inheritance)、关联(Association)、聚合(Aggregation)和组合(Composition)。 4. **序列图(Sequence Diagram)** - ...

    Use Case Add context_杭海培1

    - **聚合(Aggregation)**和**组合(Composition)**:特殊类型的关联,表示整体与部分的关系,组合具有更强的所有权。 - **依赖(Dependency)**:表示一个类的实现或行为依赖于另一个类。 - **泛化...

    hibernate 体系结构与配置 参考文档(html)

    关联(Association)与连接(Join) 14.4. join 语法的形式 14.5. select子句 14.6. 聚集函数 14.7. 多态查询 14.8. where子句 14.9. 表达式 14.10. order by子句 14.11. group by子句 14.12. 子查询 14.13. ...

    Hibernate中文详细学习文档

    15.7. 投影(Projections)、聚合(aggregation)和分组(grouping) 15.8. 离线(detached)查询和子查询 15.9. 根据自然标识查询(Queries by natural identifier) 16. Native SQL查询 16.1. 使用SQLQuery 16.1.1....

    Hibernate 中文 html 帮助文档

    15.7. 投影(Projections)、聚合(aggregation)和分组(grouping) 15.8. 离线(detached)查询和子查询 15.9. 根据自然标识查询(Queries by natural identifier) 16. Native SQL查询 16.1. 使用SQLQuery 16.1.1. 标量...

    Hibernate+中文文档

    15.7. 投影(Projections)、聚合(aggregation)和分组(grouping) 15.8. 离线(detached)查询和子查询 15.9. 根据自然标识查询(Queries by natural identifier) 16. Native SQL查询 16.1. 使用SQLQuery 16.1.1....

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    15.7. 投影(Projections)、聚合(aggregation)和分组(grouping) 15.8. 离线(detached)查询和子查询 15.9. 根据自然标识查询(Queries by natural identifier) 16. Native SQL查询 16.1. 使用SQLQuery 16.1.1....

    HibernateAPI中文版.chm

    15.7. 投影(Projections)、聚合(aggregation)和分组(grouping) 15.8. 离线(detached)查询和子查询 15.9. 根据自然标识查询(Queries by natural identifier) 16. Native SQL查询 16.1. 使用SQLQuery 16.1.1....

    hibernate3.2中文文档(chm格式)

    15.7. 投影(Projections)、聚合(aggregation)和分组(grouping) 15.8. 离线(detached)查询和子查询 15.9. 根据自然标识查询(Queries by natural identifier) 16. Native SQL查询 16.1. 使用SQLQuery 16.1.1....

Global site tag (gtag.js) - Google Analytics