UML類圖(一)

前言

最近在學習程傑老師的《大話設計模式》,以爲很是不錯,就作了一些學習筆記和總結。若是對設計模式很感興趣的,能夠直接閱讀書籍,相信會有更多的收穫。設計模式

本人小菜一枚,若是理解的不對的還請多多指教。數組

UML類圖說明

類圖URL

繼承關係

如鳥類要繼承動物類時,用空心三角形+實線指向動物類,以下函數

繼承關係

實現接口

和普通類比,接口類第一層有個<< interface >>標識。當某個類要實現接口時,用空心三角形+虛線指向接口類,以下學習

實現接口

關聯關係

當一個類「知道」另外一個類時,就能夠用關聯。關聯關係用實線箭頭表示。以下,企鵝知道天氣的變化,則能夠用實線箭頭指向天氣類。在代碼中的具體表現爲,企鵝類中會有個天氣對象的成員屬性,該天氣類能夠在構造函數裏實例化。設計

依賴關係

依賴關係表示一個類須要引用另外一個類的對象。和關聯關係不一樣的是,在關聯關係中被應用的對象以類的成員屬性形式被引用,而依賴關係中被引用的對象一般是在類方法中以局部變量的形式引用。該局部變量能夠是類方法的參數,也能夠是在類方法中得到的一個實例。好比動物須要新陳代謝,而新陳代謝依賴與水和氧氣。在代碼中體現爲,新陳代謝這個方法須要用到水和氧氣這兩個對象,但其它類方法不必定須要用到。3d

聚合關係

聚合關係表示一種弱的「擁有」關係。如A對象能夠包含有B對象,但B對象不是A對象的一部分。如雁羣和大雁就是一種聚合關係。聚合關係用空心菱形+實線箭頭表示。在代碼裏,雁羣會有一個數組,存放大雁對象。具體以下對象

組合關係(合成關係)

組合關係(也稱合成關係)表示一種強的「擁有」關係,強調了部分和總體的關係。注意,部分和總體的生命週期是同樣的。如鳥和翅膀就是一個組合關係。組合關係用實心菱形+實線箭頭表示。在代碼中,爲了保證部分和總體的生命週期是一致的,因此在總體類的構造函數中必須初始化部分類實例。具體以下blog

總結

關聯關係和依賴關係,組合關係和聚合關係這幾個一般會比較難理清楚。能夠經過如下幾點來區分繼承

  • 關聯關係,聚合關係和組合關係都是經過類的成員屬性來引用類對象,這三種關係在代碼實現上基本相同,只是從業務場景上做區分。
  • 依賴關係是經過類方法的局部變量來引用類對象的,因此能夠根據這點來判斷是不是依賴關係。
  • 依賴關係和聚合關係能夠看作是一種「弱」關係,因此在畫圖時都是用虛線和空心菱形。而關聯關係和組合關係是一種「強」關係,因此連線時用實線和實心菱形。能夠這麼理解強弱關係,如相對類成員屬性,局部變量影響更小,因此更弱些。
相關文章
相關標籤/搜索