类之间的关系

类之间的依赖、关联、聚集、泛化、实现关系

  依赖(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 {
……
}

泛化:

也就是继承,空心箭头表示     

 

posted @ 2020-03-15 21:58  zw张巍  阅读(254)  评论(0编辑  收藏  举报