橫向 (取決于語義)
依賴
- 雙方的地位往往是獨立平等的(地位)
- 是偶爾的,臨時性的,不頻繁的
- 代碼層面的表現(xiàn)形式而言,往往是局部變量
- 類B以參數(shù)的形式傳入類A的方法中
- 類A調(diào)用類B的靜態(tài)方法
關(guān)聯(lián)
- 雙方的地位往往是獨立的,平等的(地位)
- 是長期的,穩(wěn)定的,頻繁的(依賴程度)
- 代碼層面的表現(xiàn)形式而言,關(guān)聯(lián)往往以全局屬性的形式
聚合
- 雙方的地位是不平等的,是整體和部分之間的關(guān)系(地位)
- 是長期的,穩(wěn)定的,頻繁的,這種關(guān)系比關(guān)聯(lián)更強,以至于在形式上出現(xiàn)了部分和整體的關(guān)系。整體和部分都有自己的生命周期,一方的消失另一方不會跟著消失(依賴程度)
- 代碼層面的形式而言可參考關(guān)聯(lián)
組合
- 雙方的地位是平等的,是整體與部分之間的關(guān)系(地位)
- 比聚合更強,部分的生命周期取決于整體,部分隨著整體的消失二消失(依賴程度)
- 代碼層面的表現(xiàn)形式而言的參考關(guān)聯(lián)
- 區(qū)分是聚合還是組合的核心點事生命周期
縱向 (取決于結(jié)構(gòu))
繼承 extends
- 父子關(guān)系:子類可以繼承父類一切并將它發(fā)揚光大
1 可以繼承父類的屬性,父類的屬性如果是私有的,則不可被繼承
必須是公有的,或是受保護的,才可以被繼承,一般不常用。
2 可以繼承父類的方法,父類的方法不會太具體,具體的方法寫在子類,由于沒有主方法,需要一個測試類來支持它們運行。
實現(xiàn) implements
- 類對接口的實現(xiàn)