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