聚合(Aggregation)和组合(Composition)的区别
发布时间:2020-12-13 20:16:17 所属栏目:百科 来源:网络整理
导读:聚合(Aggregation) 一??散的?象?的?? 部分可?立于聚合而存在 关联是表示两个类的一般性联系,比如“学生”和“老师”就是一种关联关系;聚合表示has-a的关系,是一种相对松散的关系,聚合类不需要对被聚合类负责,如下图所示,用空的菱形表示聚合关系: 从实
聚合(Aggregation)
一??散的?象?的??
部分可?立于聚合而存在
关联是表示两个类的一般性联系,比如“学生”和“老师”就是一种关联关系;聚合表示has-a的关系,是一种相对松散的关系,聚合类不需要对被聚合类负责,如下图所示,用空的菱形表示聚合关系:
从实现的角度讲,聚合可以表示为: class A {...} class B { A* a; .....}
当B类销毁的时候,A的指针a并不会被销毁的,在内存中还有a的位置了。
?合(Composition)
一?非常?烈的?象之?的??
?合一旦??的?,必???所有部分或把??他?的?利?移?其他?象
而组合表示contains-a的关系,关联性强于聚合:组合类与被组合类有相同的生命周期,组合类要对被组合类负责,采用实心的菱形表示组合关系: 实现的形式是: class A{...} class B{ A a; ...} B类销毁了后,A也被同时销毁,在内存中就没有a的位置了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |