1.1 基本介绍

组合关系:也是整体与部分的关系,但是整体与部分不可以分开。

再看一个案例:在程序中我们定义实体:Person与IDCard、Head, 那么 Head 和 Person 就是 组合,IDCard 和 Person 就是聚合。

但是如果在程序中Person实体中定义了对IDCard进行级联删除,即删除Person时 ,连同IDCard一起删除,那么IDCard 和 Person 就是组合了.

1.2 应用案例

  1. package com.atguigu.uml.composition;
  2. public class Mouse {
  3. }
  1. package com.atguigu.uml.composition;
  2. public class Moniter {
  3. }
  1. package com.atguigu.uml.composition;
  2. public class Computer {
  3. private Mouse mouse = new Mouse(); //鼠标可以和computer不能分离
  4. private Moniter moniter = new Moniter();//显示器可以和Computer不能分离
  5. public void setMouse(Mouse mouse) {
  6. this.mouse = mouse;
  7. }
  8. public void setMoniter(Moniter moniter) {
  9. this.moniter = moniter;
  10. }
  11. }

image.png

  1. package com.atguigu.uml.composition;
  2. public class Head {
  3. }
  1. package com.atguigu.uml.composition;
  2. public class IDCard {
  3. }
  1. package com.atguigu.uml.composition;
  2. public class Person {
  3. private IDCard card; //聚合关系
  4. private Head head = new Head(); //组合关系
  5. }

image.png