JAVA中的聚集和组合的区别和联系

Python017

JAVA中的聚集和组合的区别和联系,第1张

组合实际上是聚集关系的一种特殊形式。聚集模拟了具有(has-a)关系,表示两个对象之间的归属关系。归属关系中的所有者对象称为聚集对象(aggregation object),而它的类称为聚集类(aggregating class)。归属关系中的从属对象称为被聚集类(aggregated object),而它的类被称为被聚集类(aggregated class)。

一个对象可以被几个其他聚集对象所拥有。如果一个对象只归属于一个聚集对象,那么它和聚集对象之间的关系就称为组合(composition)。例如:“一个学生有一个名字”就是组合关系,“一个学生有一个地址”就是聚集关系,因为一个地址可以被几个学生所共享。

聚合就是:表示两个对象之间是整体和部分的弱关系,部分的生命周期可以超越整体。如下:实例化Person,不一定要实例化Telephone。has a

public class Person{

private Telephone tel

private Hand hand = new Hand()

.......

}

class Telephone{

......

}

组合:组合:表示两个对象之间是整体和部分的强关系,部分的生命周期不能超越整体,或者说不能脱离整体而存在。组合关系的“部分”,是不能在整体之间进行共享的。如人和手的关系:人是整体,手是部分。is a 的关系 。手不能脱离人。

public class hand{

......

}

composition 是组合,指的是类与类之间的关系,几种常见的关系有,继承,组合,关联,聚合,依赖等...

collections 是集合,是指容器,常见的子类接口有,List,Map。简单来说,就是用来装其它东西的,被装东西可以是基础类型的数据...