加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

类的组合与聚合

发布时间:2020-12-13 22:37:03 所属栏目:百科 来源:网络整理
导读:还有一个类似的概念“组成(Composition,又译“组合”、“合成”)”,与聚合的区别就是部分类不能脱离整体类而存在。 对c++,形如: classB1; classB2; classB3; classA { B1b1; B2b2; B3*b3; }; B1,B2,B3都是部分类。 B1与A的关系是组成关系。 B2、B3与A
还有一个类似的概念“组成(Composition,又译“组合”、“合成”)”,与聚合的区别就是部分类不能脱离整体类而存在。

对c++,形如:
classB1;
classB2;
classB3;
classA
{
B1b1;
B2&b2;
B3*b3;
};
B1,B2,B3都是部分类。
B1与A的关系是组成关系。
B2、B3与A的关系是聚合还是组成要根据这一条:部分类是否能脱离整体类而存在。
在这里可以理解他们的生命周期是否同步。
如果b2,b3是通过外部传入的,形如:
public:
A(B3*b3)
m_b3=b3);
}
private:
B3*m_b3;
main()
B2bbb;
Aa(&bbb);
bbb并不会因为a的消亡而消亡。那么就是聚合关系。
反之,如果
m_b3是在A的构造函数new,在A的析构函数delete,两者生命周期一样,那么就是组成关系。
引用的情况类似。
个人感觉uml为了满足所谓通用性,使得对模型的描述很粗糙,并没有吹嘘的那么好。
仅供参考。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读