类和类之间的关系
1.泛化(继承)表示为 is-a 关系
表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。
2.依赖 二者是一种 use-a 的关系。(没有必然联系)
对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。
依赖关系表现在局部变量,方法的参数,以及对静态方法的调用
public class Person {
Department dep;
// 使用其方法
public void makePlan() {
dep.plan();
}
// 将其当做形参
public void notifyManager(Department dep) {
// ToDo
}
}
类 A(Person)使用类 B (Department),二者构成依赖关系,很明显 Department 的 plan() 有所变化,Person 的 makePlan() 也会改变。
3.关联 是一种 has-a 的关系
对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的[color=red]对应关系时[/color],这两个对象之间为关联关系。
关联又可以分为单向关联、双向关联。
单向关联
在一个单向关联中,两个类是相关的,但是只有一个类知道这种联系的存在。
4.聚合(可以分割的)
当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚集关系。聚合是关联关系的一种,是较强的关联关系,
强调的是整体与部分之间的关系。
与关联关系一样,聚合关系也是通过实例变量来实现这样关系的。关联关系和聚合关系来语法上是没办法区分的,从语义上才能更好的区分两者的区别。
关联与聚合的区别:
关联关系所涉及的两个对象是处在同一个层次上的。比如人和自行车就是一种关联关系,而不是聚合关系,因为人不是由自行车组成的。
聚合关系涉及的两个对象处于不平等的层次上,一个代表整体,一个代表部分。比如电脑和它的显示器、键盘、主板以及内存就是聚集关系,因为主板是电脑的组成部分。
聚合表现一种整体与个体的关系,比如公司与员工之间、篮球队与队员之间的关系。
5.组合(不可分割的)
也叫做合成,是一种比较强(强于聚合关系)的关联关系,他强调一种整体与部分的关系。比如说人与身体器官的关系。
1.泛化(继承)表示为 is-a 关系
表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。
2.依赖 二者是一种 use-a 的关系。(没有必然联系)
对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。
依赖关系表现在局部变量,方法的参数,以及对静态方法的调用
public class Person {
Department dep;
// 使用其方法
public void makePlan() {
dep.plan();
}
// 将其当做形参
public void notifyManager(Department dep) {
// ToDo
}
}
类 A(Person)使用类 B (Department),二者构成依赖关系,很明显 Department 的 plan() 有所变化,Person 的 makePlan() 也会改变。
3.关联 是一种 has-a 的关系
对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的[color=red]对应关系时[/color],这两个对象之间为关联关系。
关联又可以分为单向关联、双向关联。
单向关联
在一个单向关联中,两个类是相关的,但是只有一个类知道这种联系的存在。
4.聚合(可以分割的)
当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚集关系。聚合是关联关系的一种,是较强的关联关系,
强调的是整体与部分之间的关系。
与关联关系一样,聚合关系也是通过实例变量来实现这样关系的。关联关系和聚合关系来语法上是没办法区分的,从语义上才能更好的区分两者的区别。
关联与聚合的区别:
关联关系所涉及的两个对象是处在同一个层次上的。比如人和自行车就是一种关联关系,而不是聚合关系,因为人不是由自行车组成的。
聚合关系涉及的两个对象处于不平等的层次上,一个代表整体,一个代表部分。比如电脑和它的显示器、键盘、主板以及内存就是聚集关系,因为主板是电脑的组成部分。
聚合表现一种整体与个体的关系,比如公司与员工之间、篮球队与队员之间的关系。
5.组合(不可分割的)
也叫做合成,是一种比较强(强于聚合关系)的关联关系,他强调一种整体与部分的关系。比如说人与身体器官的关系。