组合和聚合
class A {...}
class B { A* a; .....}
即类B包含类A的指针;
而组合可表示为: 表示实实在在的拥有
class A{...}
class B{ A a; ...}
即类B包含类A的对象。
准确的UML类图中用空心和实心菱形对聚合和组合进行了区分。
聚合和组合的区别在于:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。
posted on 2008-12-01 21:59
波 阅读(163)
评论(0) 编辑 收藏