DesignPattern系列__08UML相關知識

前言

如今,不多有人和90年代同樣,本身去實現一個軟件的各個方面,也就是說,在工做中,和人溝通是必備的技能。那麼,做爲一枚碼農,如何和他人溝通呢?這就要依靠本文的主題了——UML。工具

簡介

UML——Unified modeling language UML(統一建模語言),是一種用於軟件系統分析和設計的語言工具,它用於幫助軟件開發人員進行思考和記錄思路的結果。UML自己是一套符號的規定,就像數學符號和化學符號同樣,這些符號用於描述軟件模型中的各個元素和他們之間的關係,好比類、接口、實現、泛化、依賴、組合、聚合等。編碼

UML分類

1.用例圖

2.靜態結構圖:

  • 類圖(最重要)
  • 對象圖
  • 包圖
  • 組件圖
  • 部署圖

3.動態結構圖

  • 交互圖(時序圖與協做圖)
  • 狀態圖
  • 活動圖

UML軟件

UML的繪製軟件有不少,能夠參見: www.zhihu.com/question/20… 。筆者使用過兩種UML插件:AmaterasUML 和 PlantUML,我的推薦使用PlantUML,可以以編碼的方式來繪製UML。官方教程:plantuml.com/zh/插件

UML類圖

在本文中,咱們只要講述類圖的相關知識。設計

定義

用於描述系統中的類(對象)自己的組成和類(對象)之間的各類靜態關係3d

類之間的關係

依賴、泛化(繼承)、實現、關聯、聚合與組合cdn

類圖——依賴關係(Dependence)

所謂依賴,好比A類中用到了B類,那麼咱們就說A類依賴B類。 對象

再來一個詳細一點的例子: blog

總結

  • 類中用到了對方
  • 是類的成員變量
  • 是類的方法的返回值
  • 是類的方法的參數
  • 方法中用到

類圖——泛化關係(generalization)

泛化關係就是繼承關係,是依賴關係的一種。繪圖的時候注意:子類指向基類。 繼承

小結

泛化關係實際上就是繼承關係。 若是A類繼承了B類,咱們就說A和B存在泛化關係。

類圖——實現關係(Implementation)

實現關係實際上就是A類實現B接口, 他是依賴關係的特例

類圖——關聯關係(Association)

關聯關係就是依賴關係的一種特例,講的主要是類和類的聯繫。教程

關聯關係具備導航性:即單向關係仍是雙向關係。

關聯關係具備多重性:如「1」(表示有且僅有一個),「0...」(表示0個或者多個),「0, 1」(表示0個或者一個),「n...m」(表示n到 m個均可以),「m...*」(表示至少m個)。

類圖——聚合關係(Aggregation)

聚合關係表示的是總體和部分的關係, 總體與部分能夠分開。 聚合關係是關聯關係的特例,因此他具備關聯的導航性與多重性。如:一臺電腦由鍵盤(keyboard)、顯示器(monitor),鼠標等組成;組成電腦的各個配件是能夠從電腦上分離出來的, 使用帶空心菱形的實線來表示:

類圖——組合關係(Composition)

組合關係一樣是表示總體和部分的關係,不過,和聚合關係不一樣的是:總體和局部不可分開。好比一我的Person和他的頭Head以及身份證IDCard的關係:Person和Head的關係就是組合,Person和IDCard的關係就是聚合。

可是,當咱們刪除一我的Person的時候要求同時刪除對應的IDCard(級聯刪除),咱們就能夠把他們看做是組合關係了。
相關文章
相關標籤/搜索