添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

UML的关联(Association), 聚合(Aggregation), 组合(Composition)区别

三者描述对象的附属[也就是依赖]关系: 关联<聚合<组合, 依赖关系是逐渐加强的.

inheritance: "a kind of": 猫是一种动物,说明猫从动物继承;

association: 两者之间存在某种关联即可,很弱的关系,如student and course, 每个学生可以选不同的课,每门课上有不同学生;

aggregation: "consist of":整体与部分之间的关系,但这里部分可以脱离整体单独存在,如MP3上所插的耳机,MP3包含耳机,但这个耳机也可以单独存在,或者插在其他电脑上。

composition: 更强的aggregation,这里部分不能脱离整体而存在,这个部分是整体的私有财产。比如Apple Itouch上的电池,原则不能拆下来单独使用。

关联(association)表明某个对象可以向另一个对象通过某种方式发送消息。发送消息的方法可以通过指针成员变量, 也可以是方法参数、局部变量等等。例如:

class A
private:
B* itsB;

聚合(aggregation)是一种特殊的联系,它表明了“部分”到“整体”的关系,显著的特点就是不能包含循环的联系 (就是说,部分中不能包含整体)。如:

class Node
private:
vector<Node*> itsNodes;

上述代码只有当子节点不会成为父节点的父节点时(即,必须是树结构,不能是图结构),才能称之为聚合。

从实现的角度讲,聚合可以表示为:

class A {...} class B { A* a; .....}

组合(composition)跟聚合几乎相同,唯一的区别就是“部分”不能脱离“整体”单独存在,就是说, “部分”的生命期不能比“整体”还要长。例如:

class Car
public:
virtual ~Car() {delete itsCarb;}
private:
Carburetor* itsCarb
从实现的角度讲,组合实现的形式是: 
class A{...} class B{ A a; ...}
类图可能是UML中使用的最多的一种图。
和其他图一样,类图的基本语法并不复杂,可能一两天就能掌握,但是真正做到灵活的使用类图,可能需呀多年的功力。
类图是锻炼OOA(OO Analysis)和OOD(OO Design)思想的重要工具,有...
                                浏览器打开
1、关联图示
[img]http://dl.iteye.com/upload/attachment/0080/3811/0f40c955-ab42-3e1a-82d8-88833b0b248a.jpg[/img]
2、聚合图示
[img]http://dl.iteye.com/upload/attachment/0080/3813/a34cb784-964...
                                浏览器打开
Class
A definition of objects that share given structural or behavioral characteristics. For more information, see Properties of types on UML class diagrams.
                                浏览器打开
类之间可能存在以下几种关系:关联(association)、依赖(dependency)、聚合(Aggregation,也有的称聚集)、组合(Composition)、泛化(generaliza
                                浏览器打开
                                    最近在教软件工程项目实践,就又仔细了解了下UML中各种关系的意义,虽然有点简单,但是有些概念还是经常被混淆的,写在这里是为了加深印象。关系列表:继承关系(Generalization);实现关系(Realization);依赖关系(Dependency);关联关系(Association);有方向的关联(DirectedAssociation);聚合关系(Aggre
                                浏览器打开
当一个A类型的对象销毁了其存储单元时,引用变量b也将销毁存储单元。但是b引用的对象是否也应当销毁存储单元?有两种情况需要考虑。
(1)合成(Composition):当一个A类型的对象销毁了存储单元时,b引用的对象也销毁存储单元。换句话说,b引用的对象的存在依赖...
                                浏览器打开
定义:经常又叫做合成复用原则(Composite ReusePrinciple或CRP),尽量使用对象组合,而不是继承来达到复用的目的。
就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新对象通过向这些对象的委派达到复用已有
                                浏览器打开
                                    转自:http://blog.csdn.net/tianhai110/article/details/6339565
在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization), 关联Association), 聚合Ag
                                浏览器打开