ArrayList <x>是聚合还是组合?

时间:2019-03-04 17:46:18

标签: java oop aggregation composition

我正在为编程考试做准备,并遇到了这个问题,我知道该对象在聚合时是借来的,在构成上是该对象的拥有。答案组成了吗?

ArrayList<X> X 的集合还是 X 的组成?

ArrayList<Point> pts = new ArrayList<Point>();
Point p = new Point(0., 0., 0.);
pts.add(p);
p.setX( 10.0 );
System.out.println(p);
System.out.println(pts.get(0));

2 个答案:

答案 0 :(得分:0)

由于Point在数组之外确实存在,所以它是一个聚合。

https://www.visual-paradigm.com/guide/uml-unified-modeling-language/uml-aggregation-vs-composition/

如上所述:

  

聚集意味着孩子可以存在的关系   独立于父母。示例:班级(父母)和学生   (儿童)。删除班级,学生仍然存在。

     

组成意味着孩子无法存在的关系   独立于父母。示例:房屋(父母)和房间(孩子)。   房间并不与房屋分开存在。

答案 1 :(得分:0)

来自here

  

简单规则:

     
      
  1. A是“所有者” B =组成:没有A,B在系统中没有任何意义或目的。
  2.   
  3. A“使用” B =聚合:B与A独立(在概念上)存在
  4.   

因此,这实际上取决于您的模型。列表中的元素可以不存在列表而存在。是否必须将元素放入列表中才有意义?

对于ArrayList<Point>,我认为这是一个汇总。