關聯–依賴、組合–彙總

來源:互聯網
上載者:User

關聯--依賴、組合--彙總   聯絡與區別:

依賴是比關聯弱的關係,關聯代表一種結構化的關係,體現在產生的程式碼中,以java為例:  
  若類A單向關聯指向類B,則在類A中存在一個屬性B   b。  
  若類A依賴類B,則不會有這個屬性,類B的執行個體可能存在於某個方法調用的參數中,或某個方法的局部變數中。

 

關聯--依賴、組合--彙總   聯絡與區別:

依賴是比關聯弱的關係,關聯代表一種結構化的關係,體現在產生的程式碼中,以java為例:  
  若類A單向關聯指向類B,則在類A中存在一個屬性B   b。  
  若類A依賴類B,則不會有這個屬性,類B的執行個體可能存在於某個方法調用的參數中,或某個方法的局部變數中。

例如代碼:

     依賴:----存在於某個方法調用的參數中,或某個方法的局部變數中。

Person類與Screwdriver類的依賴關係

[代碼錶現]

public class Person{   
    /** 擰螺絲 */  
    public void screw(Screwdriver screwdriver){   
        screwdriver.screw();   
    }   
}  

    關聯:---存在一個屬性

公司(Company)和員工(Employee)的關聯關係

[代碼錶現]
public class Company{   
    private Employee employee;   
    public Employee getEmployee(){   
        return employee;   
    }   
    public void setEmployee(Employee employee){   
        this.employee=employee;   
    }   
    //公司運作   
    public void run(){   
        employee.startWorking();   
    }   
}  

 

   
    彙總: 空心菱形加實線箭頭表示
 表示C9彙總C10,但是C10可以離開C9而獨立存在(獨立存在的意思是在某個應用的問題域中這個類的存在有意義。這句話怎麼解,請看下面組合裡的解釋)。
 同構性,主體和部分不具有生命期的一致性

課程組可由多個學生組成,課程組撤消了,學生還活得好好的,這是彙總。

    組合(也有人稱為包容):一般是實心菱形加實線箭頭表示
 異構性,部分和主體具有生命期上的一致性

表示的是C8被C7包容,而且C8不能離開C7而獨立存在。但這是視問題域而定的,例如在關心汽車的領域裡,輪胎是一定要組合在汽車類中的,因為它離開了汽車就沒有意義了。但是在賣輪胎的店鋪業務裡,就算輪胎離開了汽車,它也是有意義的,這就可以用彙總了。在《敏捷開發》中還說到,A組合B,則A需要知道B的生存周期,即可能A負責產生或者釋放B,或者A通過某種途徑知道B的產生和釋放。

組合的例子:你顯示屏上的瀏覽器視窗,關閉瀏覽器,上面的按紐死掉不見了,這是組合(再開啟一個瀏覽視窗,按紐已經不是原來的了)。

 

//關聯   B 關聯 A

class A

{

      FunA(){};

}

 

class B

{

     A a;

     FunB();

}

 

//依賴

class A

{

      FunA(){};

}

 

class B

{

     FunB()

    {

         A a = new A();

         a.FunA();

    }

   

     FunC(A a)

     {

         a.FunA();

     }

}

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.