咱們在學習設計模式時總會涉及到類與類之間的關係, 這也會讓人感受到很抽象, 爲了更好滴了解設計模式中類與類之間的關係(類與接口之間的關係), 這時咱們就用到了 UML.設計模式
類與類之間大體分爲了四種關係:學習
① 泛化關係設計
② 實現關係cdn
③ 依賴關係blog
④ 關聯關係繼承
說白了就是繼承, 類與類之間的繼承, 接口與接口之間的繼承:接口
類與接口之間的關係, 一個類實現了一個或者多個接口.生命週期
Human 類依賴 Ship 類, 依賴關係是單向的,Ship 的改變會影響到 Human.依賴關係體現爲局部變量、方法的形參,或者對靜態方法的調用.事件
關聯關係分類就比較多了, 分爲:ip
① 單向關聯, 雙向關聯: 關聯關係通常使用成員變量來實現.
② 聚合關係: 也是關聯關係的一種, 是強關聯關係.
③ 組合關係: 比聚合關係強的關聯關係.
單向關聯和雙向關聯本質同樣, 就以單向關聯爲例: Person 類有一個屬性是 Money 類的, Person 能夠獲取到 Money 的屬性和方法, 屬於強依賴關係, 關聯關係平等.
聚合關係顧名思義, 聚合在一塊兒的, 二者之間是總體與個體的關係, 可是能夠分離, 各自有各自的生命週期, SDWebImageManager 類包含 SDImageCache 類, 但 SDImageCache 不是 SDWebImageManager 的組成部分.
組合關係和聚合關係有些相似, 不一樣的是 SDWebImageWebPCoder 是 SDWebImageCodersManager 的一部分, 生命週期相同, SDWebImageWebPCoder 不能脫離 SDWebImageCodersManager 而存在.
ps: 我的感受關聯關係的辨別比較模糊, 須要結合具體事件分析來進行判斷.