1、聚合关系(aggregation)
用空心菱形箭头表示,整体和部分有各自的生命周期。部分可以属于多个整体对象!
class Student;
class Class {
private:
Student s;
public:
void set_student(Student s) {
this.s = s;
}
};
student() {
print(“create a student”);
}
2、组合关系(composition)
用实心箭头表示,同聚合关系一样也是部分与整体的关系,与组合关系不同的是,整体控制部分对象的生命周期,整体不存在,部分也消亡。
class Eye;
class Face{
private:
Eye e;
public:
set_eye() {
this->e = new Eye();//在实现组合关系时,通常是在整体类的构造中,实例化成员类
}
};
3、关联关系
用实线箭头表示。是类与类之间的联接关系。它使类A知道类B的属性和方法,这种关系比依赖更强,不存在依赖关系的偶然性。关联关系也不是临时的,一般都是长期关系。类A的全局变量引用了另一个类B,就表示A关联了B。关联关系分为单向关联和双向关联。单项关联指类A中使用了类B作为成员变量。双向关联指类A中使用了类B作为成员变量,类B中也使用了类A作为成员变量。
4、依赖关系
用虚线箭头表示。是一种使用关系,通常表现为A的接口实现需要B的参与。
class B;
class A {
init(B b)
}