当前位置: 代码迷 >> 综合 >> c++类与类的聚合(Aggregation)关系
  详细解决方案

c++类与类的聚合(Aggregation)关系

热度:32   发布时间:2024-03-09 15:03:49.0

当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚集关系。聚合是关联关系的一种,是较强的关联关系,强调的是整体与部分之间的关系。
[具体表现]
与关联关系一样,聚合关系也是通过实例变量来实现这样关系的。关联关系和聚合关系来语法上是没办法区分的,从语义上才能更好的区分两者的区别。
[关联与聚合的区别]
(1)关联关系所涉及的两个对象是处在同一个层次上的。比如人和自行车就是一种关联关系,而不是聚合关系,因为人不是由自行车组成的。
聚合关系涉及的两个对象处于不平等的层次上,一个代表整体,一个代表部分。比如电脑和它的显示器、键盘、主板以及内存就是聚集关系,因为主板是电脑的组成部分。
(2)对于具有聚集关系(尤其是强聚集关系)的两个对象,整体对象会制约它的组成对象的生命周期。部分类的对象不能单独存在,它的生命周期依赖于整体类的对象的生命周期,当整体消失,部分也就随之消失。比如张三的电脑被偷了,那么电脑的所有组件也不存在了,除非张三事先把一些电脑的组件(比如硬盘和内存)拆了下来。
UML图
在这里插入图片描述
图1.3 电脑和组件的聚合关系

[代码表现]
public class Computer{   
    private CPU cpu;   
    public CPU getCPU(){   
        return cpu;   
    }   
    public void setCPU(CPU cpu){   
        this.cpu=cpu;   
    }   
    //开启电脑   
    public void start(){   
        //cpu运作   
        cpu.run();   
    }   
}

  相关解决方案