◆聚合(aggregation)
关联关系的一种,一个对象成为另外一个对象的组成部分。
是一种关系较强的关联。
在两个对象之间存在“has a”这样的关系,一个对象作为另一个对象的属性存在,在外部对象被生产时,可由客户端指定与其关联的内部对象。
如汽车与轮胎,轮胎作为汽车的一个组成部分,它和汽车可以分别生产以后装配起来使用,但汽车可以换新轮胎,轮胎也可以卸下来给其它汽车使用。
较强的关联 ---- 通过构造函数
class person
{
public person()
{
Create compter;
}
}
◆组合(composition)
当一个对象包含另一个对象时,外部对象负责管理内部对象的生命周期的情况。
关联关系中最为强烈的一种。
内部对象的创建由外部对象自己控制。
外部对象不存在时,内部对象也不能存在,如电视机与CRT。
◆组合composition
发动机 车。
车的生命周期决定发动机生命周期。
垃圾回收。
◆内聚(cohesion)
度量一个类独立完成某项工作的能力。
清洁工(有吸尘器,拖不,扫把)。
临时工(无)。
◆藕合(coupling)
度量系统内或系统之间依赖关系的复杂度。
设计原则:增加内聚,减少藕合。
接口 :解耦合。