首页 > 解决方案 > 是数组列表聚合还是组合?

问题描述

我正在准备我的编程考试并遇到了这个问题,我知道在聚合中对象是借用的,而在组合中对象是拥有的。是答案组成吗?

XArrayList<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));

标签: javaoopaggregationcomposition

解决方案


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

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

就像声明的那样:

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

组合意味着孩子不能独立于父母而存在的关系。示例:房屋(父)和房间(子)。房间不存在独立于房屋。


推荐阅读