Java中的类的关系

来源:互联网 发布:高级数据安全工程师 编辑:程序博客网 时间:2024/06/09 15:35

一、依赖关系

依赖关系(Dependence):假设A类的变化引起了B类的变化,则B类依赖于A类。

依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数

public class Driver  //B类{      public void drive(Car car)      {          car.move();      }  }  public class Car  //A类{      public void move()      {          ......      }  } 

依赖关系有如下三种情况:

  • A类是B类中的(某中方法的)局部变量;
  • A类是B类方法当中的一个参数;
  • A类向B类发送消息,从而影响B类发生变化;

二、关联关系

关联关系(Association):是一种结构化关系,用于表示一类对象与另一类对象之间有联系,通常将一个类的对象作为另一个类的属性。

1、双向关联:默认情况下,关联是双向的。

public class Customer  {      private Product[] products;      ……  }  public class Product  {      private Customer customer;      ……  }  

2、单向关联:类的关联关系也可以是单向的。

public class Customer  {      private Address address;      ……  }  public class Address  {      ……  } 

三、聚合关系

聚合关系(Aggregation):表示的是整体和部分的关系,整体与部分可以分开。

通常在定义一个整体类后,再去分析这个整体类的组成结构,从而找出一些成员类,该整体类和成员类之间就形成了聚合关系。

在聚合关系中,成员类是整体类的一部分,即成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。

public class Car  {      private Engine engine;      public Car(Engine engine)     {          this.engine = engine;      }      public void setEngine(Engine engine)      {          this.engine = engine;      }      ……  }  public class Engine  {      ……  }  

四、组合关系

组合关系(Composition):也是整体与部分的关系,但是整体与部分不可以分开。

组合关系也表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在,部分对象与整体对象之间具有同生共死的关系。
在组合关系中,成员类是整体类的一部分,而且整体类可以控制成员类的生命周期,即成员类的存在依赖于整体类。

public class Head  {      private Mouth mouth;      public Head()      {      mouth = new Mouth();      }      ……  }  public class Mouth  {      ……  }  

五、泛化关系(Generalization)

泛化关系也就是继承关系,也称为“is-a-kind-of”关系或者“is a”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。
在代码实现时,使用面向对象的继承机制来实现泛化关系。

六、实现关系(Realization)

接口和类之间还存在一种实现关系,在这种关系中,类实现了接口,类中的操作实现了接口中所声明的操作。

这里写图片描述

0 0
原创粉丝点击