在java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。
  1.依赖(Dependence)设计模式中类的关系

  依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义比较晦涩难懂,但在java中的表现还是比较直观的:类A当中使用了类B,其中类B是作为类A的方法参数、方法中的局部变量、或者静态方法调用。类上面的图例中:People类依赖于Book类和Food类,Book类和Food类是作为类中方法的参数形式出现在People类中的。
  代码样例:
  public class People{
  //Book作为read方法的形参
  public void read(Book book){
  System.out.println(“读的书是”+book.getName());
  }
  }
  2.关联(Association)

 

  单向关联:

  双向关联:


  对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。关联关系分为单向关联和双向关联。在java中,单向关联表现为:类A当中使用了类B,其中类B是作为类A的成员变量。双向关联表现为:类A当中使用了类B作为成员变量;同时类B中也使用了类A作为成员变量。
  代码样例:
  public class Son{
  //关联关系中作为成员变量的类一般会在类中赋值
  Father father=new Father();
  public void getGift(){
  System.out.println(“从”+father.getName()+”获得礼物”);
  }
  }
  public class Father{
  Son son=new Son();
  public void giveGift(){
  System.out.println(“送给”+son.getName()+“礼物”);
  }
  }