依賴與關聯關係

依賴關係

依賴關係是一種使用關係,對於特定事物的改變有可能會影響到使用該事物的其他事物,在需要表示一個事物使用另外一個事物時使用依賴關係。比如說人要探親需要交通工具,人和交通工具之間的關係就是依賴關係;工人用挖掘機進行工作,工人和挖掘機之間就是依賴關係。大多數情況下,依賴關係體現在某個類的方法當中使用另一個類的對象作爲參數。

依賴關係在面對對象語言當中有三種情況:
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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章