最近在學習程傑老師的《大話設計模式》,以爲很是不錯,就作了一些學習筆記和總結。若是對設計模式很感興趣的,能夠直接閱讀書籍,相信會有更多的收穫。設計模式
本人小菜一枚,若是理解的不對的還請多多指教。數組
如鳥類要繼承動物類時,用空心三角形+實線指向動物類,以下函數
和普通類比,接口類第一層有個<< interface >>標識。當某個類要實現接口時,用空心三角形+虛線指向接口類,以下學習
當一個類「知道」另外一個類時,就能夠用關聯。關聯關係用實線箭頭表示。以下,企鵝知道天氣的變化,則能夠用實線箭頭指向天氣類。在代碼中的具體表現爲,企鵝類中會有個天氣對象的成員屬性,該天氣類能夠在構造函數裏實例化。設計
依賴關係表示一個類須要引用另外一個類的對象。和關聯關係不一樣的是,在關聯關係中被應用的對象以類的成員屬性形式被引用,而依賴關係中被引用的對象一般是在類方法中以局部變量的形式引用。該局部變量能夠是類方法的參數,也能夠是在類方法中得到的一個實例。好比動物須要新陳代謝,而新陳代謝依賴與水和氧氣。在代碼中體現爲,新陳代謝這個方法須要用到水和氧氣這兩個對象,但其它類方法不必定須要用到。3d
聚合關係表示一種弱的「擁有」關係。如A對象能夠包含有B對象,但B對象不是A對象的一部分。如雁羣和大雁就是一種聚合關係。聚合關係用空心菱形+實線箭頭表示。在代碼裏,雁羣會有一個數組,存放大雁對象。具體以下對象
組合關係(也稱合成關係)表示一種強的「擁有」關係,強調了部分和總體的關係。注意,部分和總體的生命週期是同樣的。如鳥和翅膀就是一個組合關係。組合關係用實心菱形+實線箭頭表示。在代碼中,爲了保證部分和總體的生命週期是一致的,因此在總體類的構造函數中必須初始化部分類實例。具體以下blog
關聯關係和依賴關係,組合關係和聚合關係這幾個一般會比較難理清楚。能夠經過如下幾點來區分繼承