类与类之间的交互关系
?類與類之間都哪些交互關(guān)系呢?
?UML 統(tǒng)一建模語言中定義了六種類之間的關(guān)系。它們分別是:泛化、實(shí)現(xiàn)、關(guān)聯(lián)、聚合、組合、依賴。關(guān)系比較多,而且有些還比較相近,比如聚合和組合,接下來我就逐一講解一下。
??
泛化(Generalization)可以簡(jiǎn)單理解為繼承關(guān)系。具體到 Java 代碼就是下面這樣:
public class A { ... }public class B extends A { ... }?
實(shí)現(xiàn)(Realization)一般是指接口和實(shí)現(xiàn)類之間的關(guān)系。具體到 Java 代碼就是下面這樣:
public interface A {...}public class B implements A { ... }?
聚合(Aggregation)是一種包含關(guān)系,A 類對(duì)象包含 B 類對(duì)象,B 類對(duì)象的生命周期可以不依賴 A 類對(duì)象的生命周期,也就是說可以單獨(dú)銷毀 A 類對(duì)象而不影響 B 對(duì)象,比如課程與學(xué)生之間的關(guān)系。具體到 Java 代碼就是下面這樣:
public class A {private B b;public A(B b) {this.b = b;}}組合(Composition)也是一種包含關(guān)系。A 類對(duì)象包含 B 類對(duì)象,B 類對(duì)象的生命周期跟依賴 A 類對(duì)象的生命周期,B 類對(duì)象不可單獨(dú)存在,比如鳥與翅膀之間的關(guān)系。具體到 Java 代碼就是下面這樣:
public class A {private B b;public A() {this.b = new B();} }關(guān)聯(lián)(Association)是一種非常弱的關(guān)系,包含聚合、組合兩種關(guān)系。具體到代碼層面,如果 B 類對(duì)象是 A 類的成員變量,那 B 類和 A 類就是關(guān)聯(lián)關(guān)系。具體到 Java 代碼就是下面這樣:
public class A {private B b;public A(B b) {this.b = b;} } 或者 public class A {private B b;public A() {this.b = new B();} }依賴(Dependency)是一種比關(guān)聯(lián)關(guān)系更加弱的關(guān)系,包含關(guān)聯(lián)關(guān)系。不管是 B 類對(duì)象是 A 類對(duì)象的成員變量,還是 A 類的方法使用 B 類對(duì)象作為參數(shù)或者返回值、局部變量,只要 B 類對(duì)象和 A 類對(duì)象有任何使用關(guān)系,我們都稱它們有依賴關(guān)系。具體到 Java 代碼就是下面這樣:
public class A {private B b;public A(B b) {this.b = b;} } 或者 public class A {private B b;public A() {this.b = new B();} } 或者 public class A {public void func(B b) { ... } }?
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的类与类之间的交互关系的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 操作系统:多处理器编程-- 蒋炎岩老师
- 下一篇: 设计模式:设计原则