面向對象中多個對象之間的關系


  當談到面向對象的設計時,我們經常說面向對象是符合人們對現實世界的思維模式,即人們采用針對非程序設計領域存在的復雜問題的解決方式,來解決軟件設計過程中各種錯綜復雜的關系。利用面向對象設計,特別是采用各種設計模式來解決問題時,會設計多個類,然后創建多個對象,這些對象,有些主要是數據模型,有些則是行為描述占主體。一個設計良好的類,應該是兼顧信息和行為,並且是高內聚。而不同的類之間,應該盡量做到松耦合。

  由於我們面對的系統或者需要解決的問題經常是復雜的、高度抽象的,我們創建的多個對象往往是有聯系的,通常對象之間的關系可以分為以下幾類:

  • 繼承

具有層次關系或者可以用樹狀結構來描述對象關系時,可以考慮使用繼承,繼承的好處是子類可以容易的使用父類的屬性和方法,缺點是子類和父類綁定在一起,不利於后期維護。

在UML中,繼承通常是使用空心三角+實線來表示。

  • 關聯

如果A和B有關聯,那么說明A內部可能會使用到B,但是A和B本身還是獨立的關系,通常B會作為A的成員變量存在。

在UML中,關聯通常是使用實線箭頭來表示,箭頭方向是A指向B。

  • 聚合

如果A和B是聚合的,那么說明A和B是“弱擁有”的關系,它們不是獨立的關系,但是A和B的生命周期可以使不同的,通常B也是會作為A的成員變量存在。

在UML中,聚合通常是使用空心菱形+實線箭頭來表示。

  • 組合

如果A和B是組合的,那么說明A和B是“強擁有”的關系,它們不是獨立的關系,並且生命周期也是一樣的,通常B作為A的成員變量存在,並且在A的構造函數中進行初始化。

在UML中,組合通常是使用實心菱形+實線箭頭表示。

  • 依賴

如果A和B是依賴的關系,說明B一般不單獨使用,它需要在A中才會發揮作用,通常B是作為A中的方法參數存在的。

在UML中依賴通常使用虛線箭頭表示。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM