天天看點

關聯關系、依賴關系總結關聯關系、依賴關系總結

關聯關系、依賴關系總結

一、關聯關系總結:

1.對象和對象之間的連接配接。在Java中,關聯關系的代碼表現形式為一個類做為另一個類的屬性類型存在。即“有”的關系:”has-a”。

2.關聯關系的方向:關聯關系分為單向關聯和雙向關聯  

①單向關聯: A類關聯B類。

②雙向關聯:A類關聯B類,B類關聯A類。

3.關聯關系的多重性:①一對一關聯:一個學生,隻能在一個班級裡學習。

②一對多關聯:一個學生,可以參加多個班級學習。

③解決一對多的關聯的方案:集合和數組。

集合

例:

    public class Classes{     

     }

    public  class Student{

    private List Classess;

}

數組

例:

    public class Classes{      

    }

    public  class Student{

    private Classes[] Classess;

}

4.關聯關系的特殊情況:如果兩個互相關聯的類中有整體和部分的關系,關聯關系分為: 聚合群組合,主要差別在于生命周期不同。

二、依賴關系總結:

1.依賴關系的定義:依賴關系(use-a),指一個類A使用到了另一個類B。

2.依賴關系的特性:這種關系是具有偶然性的、臨時性的、非常弱的,但是類B的變化會影響到類A。

3.依賴具體表現:在代碼層面,依賴關系表現為類B作為參數被類A在某個method。

4.依賴與關聯的差別:

關聯是“HAS”關系,依賴是“USE”關系:

①A類關聯B類,指的是B類對象作為A類的屬性存在,稱為“has”關系。

②A類依賴B類,指的是B的對象作為A類的方法參數存在,稱為“use”關系。

生命周期不同:

①如果A類關聯B類,那麼建立A類的對象時執行個體化B類的對象,直到A類對象被銷毀,所關聯的B類對象也被銷毀。即隻要A類對象存在,B類對象就存在。

②如果A類依賴B類,那麼隻有當A類對象調用到相應方法時,B類對象才被臨時建立,方法執行結束,B類對象即被回收,A類和B類之間的依賴關系是一種瞬時的關系。

繼續閱讀