一、概述
类间关系包含依赖、关联、聚合、组合、泛化。
耦合度比较:依赖 < 关联 < 聚合 < 组合 < 泛化。
二、依赖
类 A 的某个成员方法的返回值、形参、局部变量或静态方法调用了类 B,类 B 并没有任何实例作为类 A 的成员变量。
依赖关系是仅当类 A 的方法被调用时而产生,伴随着方法的结束而结束。
三、关联
类 A 引用类 B 作为成员变量。
关联关系建立于类 A 中类 B 的对象实例化成功,终止与该对象的销毁。
四、聚合
类 A 引用类 B 作为成员变量,类 A 的构造函数中包含类 B 的实例作为参数来实例化 A 中类型为 B 的成员变量,即先有类 B 的实例,才会有类 A 中类型为 B 的成员变量,所以 B 的实例可以独立于 A 的实例而存在。
打个比方。学生可以脱离班级体独立存在。
五、组合
类 A 引用类 B 作为成员变量,类 A 的构造函数不需要类 B 的实例作为参数,而是直接在类 A 的构造函数内实例化类型为 B 的成员变量。A 实例与其中类型为 B 的成员变量同生同灭。
打个比方,学生不能脱离心脏而存在。
六、泛化
通俗的来讲,泛化指的是类与类之间的继承关系和类与接口之间的实现关系。