聚合(aggregation)意味着一个对象拥有另一个对象或对另一个对象负责。一般我们称一个对象包含另一个对象或者一个对象是另一个对象的一部分。聚合意味着聚合对象和其所有者具有相同的生命周期。一般用带菱形的箭头表示。指该类里(A)有其它类(B)的指针或引用,在该类里(A)会调用其他类(B)的方法或属性来完成自身的功能。所以“聚合在类中定义为实例指针或引用”,定义中写定义类(A)时已有(B)。
相识(acquaintance)意味着一个对象仅仅知道另一个对象。有时相识也被称为“关联”或“引用”关系。相识的对象可能请求彼此的操作,但是他们不为对方负责。相识是一种比聚合要弱的关系,他只表示了对象间叫松散的耦合关系。一般用箭头表示。(相识)仅仅是该类(A)会调用其他类(C)的方法或属性,但类本生并没有其它类(C)的指针或引用,所以“相识是以指针或引用来实现”,定义并没有写有啊!只是来实现!
聚合关系是说,一个对象的构造和析构都在另一个函数里面进行,聚合对象对被聚合对象的实现负责。相识关系是说,一个对象对另一个对象具有引用访问方式,而两个对象本身独立负责自身的构造和析构。