类之间的关系
类之间的依赖、关联、聚集、泛化、实现关系
依赖(Dependence):当类与类之间有使用关系时就属于依赖关系,不同于关联关系,依赖不具有“拥有关系”,而是一种“相识关系”,只在某个特定地方(比如某个方法体内)才有关系。
关联(Association):表示类与类或类与接口之间的依赖关系,表现为“拥有关系”;具体到代码可以用实例变量来表示。
聚集(Aggregation):属于是关联的特殊情况,体现部分-整体关系,是一种弱拥有关系;整体和部分可以有不一样的生命周期;是一种弱关联。
泛化(Generalization):表示类与类之间的继承关系、接口与接口之间的继承关系。
实现(Implementation):表示具体类对接口的实现。
依赖:
用虚线箭头表示,有以下三种情况
1、A类是B类中的(某个方法)的局部变量
2、A类是B类中的一个参数
3、A类向B类发送消息,从而影响B类发生变化
public class Driver{
public void drive(Car car){
car.move();
}
}
public class Car{
public void move(){
}
}
关联:
类与类最常用的一种关系,用实线表示。通常将一个类作为另一个类的属性,在使用类图表示关联关系时可以在关联线上标注角色名。1) 双向关联: 默认情况下,关联是双向的。
public class Customer{
private Product[] products;
……
}
public class Product{
private Customer customer;
……
}
聚集:
表示部分和整体的关系,部分和整体可以分开。
public class Car {
private Engine engine;
public Car(Engine engine) {
this.engine = engine;
}
public void setEngine(Engine engine) {
this.engine = engine;
}
……
}
public class Engine {
……
}
泛化:
也就是继承,空心箭头表示