依赖关系

依赖关系是一种使用关系,对于特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另外一个事物时使用依赖关系。比如说人要探亲需要交通工具,人和交通工具之间的关系就是依赖关系;工人用挖掘机进行工作,工人和挖掘机之间就是依赖关系。大多数情况下,依赖关系体现在某个类的方法当中使用另一个类的对象作为参数。

依赖关系在面对对象语言当中有三种情况:
1、A类是B类中(某种方法的)局部变量
2、A类是B类方法当中的一个参数
3、A类向B类发送信息,从而影响B类发生变化
对应的Java代码片段:

public class CourceTable {
 public void addCource(Cource cource) {
  // 依赖关系
  cource.show();
  System.out.println("增加课程");
 }
  public void reCource(Cource cource) {
  // 依赖关系
  cource.show();
  System.out.println("删除课程");
 }
}
public class Cource {
 public void show() {
  System.out.println("课程为…");
 }
}
public class CourceTest {
 public static void main(String[] args) {
  CourceTable t = new CourceTable();
  Cource c = new Cource();
  t.addCource(c);
  t.reCource(c);
 }
}

上述课程表类中用课程的对象作为参数,进行增加课程和删除课程的功能。课程的变化同时会引起课程表的实时变更,即为课程表依赖于课程。

关联关系

关联关系是类与类之间最常用的一种关系,它作为一种结构化关系,代表了类的对象之间的一组连接。比如客户与订单、老师和学生,人体与大脑,这些关系并不是使用的时候才有的联系,二十一种长期存在并且稳定的关系。
关联关系也分为双向关联、单项关联和自关联等等。

双向关联

我们这里一般指都知道双方的存在,都可以调用对方的公共属性和方法,默认的情况下,关联都是双向的。比如供应商和顾客之间的联系,一家供货商可以向多个顾客供货,一个顾客也可以向多家供应商进货。
对应的Java代码片段:

// 顾客类
public class Customer {
 // 供应商对象组作为Customer的属性成员
 private Supplier[] supplier;
}
// 供应商类
public class Supplier {
 // 顾客对象组作为Supplier的属性成员
 public Customer[] customer;
}

单向关联

对应的Java代码片段:

// 顾客类
public class Customer {
 private Address address;
}
// 地址类
public class Address {
}

自身关联

在系统中可能存在一些类的属性为对象类型为该类本身,这种特殊的关联关系称为自关联。

// 顾客类
public class Customer {
 private Customer customer;
}