概述
在面向对象设计模式中,类与类之间的关系存在6中,分别为:依赖、关联、聚合、组合、继承和实现,它们的耦合度依次增强。下面我们在Java中讨论它们的定义和特点。
汇总
关系 | 定义 | UML图例表示 | 赋值方式 | 例子 |
---|---|---|---|---|
依赖(Dependence) | 类A中使用了类B,其中类B作为类A中方法的参数、方法中的局部变量或者静态方法的调用 | ![]() |
无 | 无 |
关联(Association) | 单向:类A中使用了类B作为成员变量。双向:类A当中使用了类B作为成员变量;同时类B中也使用了类A作为成员变量。类A类B无任何关系 | ![]() |
类中赋值 | 车和房 |
聚合(Aggregation) | 关联的一种,类A和类B存在包容关系,但相互是可以独立的(整体-个体) | ![]() |
set方法 | 人(车和房) |
组合(Composition) | 关联的一种,类B是类A的一部分,类B不能单独存在(整体-部分),整体代表了部分的生命周期 | ![]() |
构造方法中 | 人(灵魂和肉体) |
继承(Generalization) | 子类和父类的关系,子类是具有父类的属性和行为,并且扩展了新的能力 | ![]() |
无 | 无 |
实现(Implementation) | 实现一个或多个接口方法的类 | ![]() |
无 | 无 |
注意1:判断关系通过语义,然后结合上下文判断。
注意2:UML图例的箭头指向。