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