将关联,聚合和组合转换为java中的代码?

M S*_*ach 7 java uml

我知道java中的关联转换,聚合和组合有不同的表达方式.但是当我们将它们转换为代码(java类)时,它们都以相同的方式表示.像老师教的那个协会将用具有班主任实例变量的学生班来代表.

部门教授的聚合也将由具有类教授的实例变量(数组)的Department类表示.

大学有部门组成也将用具有班级实例变量(数组)的大学班来代表.

所以在代码方面都以相同的方式重新编写.那么协会,聚合和组合为开发人员提供了哪些好处呢?

sfi*_*nie 5

你在撰写时错过了部分故事.它要求一些额外的属性:

  • 父母的不变性(即孩子不能转换父母)
  • 孩子的生命周期责任在于父母.即父级负责创建和删除子实例.父母去世后,孩子不能活下去.

你是正确的,该关联将分别表示为child&parent中的引用/引用集合.但是,如果要确保强制使用组合语义,则代码还必须强制执行上述规则.

至于聚合:我不使用它.语义过于宽松,与直接关联相比没有任何优势.

心连心.