快速看懂UML中的類圖

前言

統一建模語言(Unified Modeling Language,UML)是用來設計軟件藍圖的可視化建模語言,1997 年被國際對象管理組織(OMG)採納爲面向對象的建模語言的國際標準。它的特色是簡單、統1、圖形化、能表達軟件設計中的動態與靜態信息。設計模式

統一建模語言能爲軟件開發的全部階段提供模型化和可視化支持。並且融入了軟件工程領域的新思想、新方法和新技術,使軟件設計人員溝通更簡明,進一步縮短了設計時間,減小開發成本。它的應用領域很寬,不只適合於通常系統的開發,並且適合於並行與分佈式系統的建模。分佈式

UML 從目標系統的不一樣角度出發,定義了用例圖、類圖、對象圖、狀態圖、活動圖、時序圖、協做圖、構件圖、部署圖等 9 種圖。【百度百科】 工具

本文並不會對全部圖進行分析。主要介紹開發中經常使用的類圖 時序圖 狀態圖。spa

類圖

類(Class)是指具備相同屬性、方法和關係的對象的抽象,它封裝了數據和行爲,是面向對象程序設計(OOP)的基礎,具備封裝性、繼承性和多態性等三大特性。在 UML 中,類使用包含類名、屬性和操做且帶有分隔線的矩形來表示。 設計

首先講解關係先來看一個例子:3d

如今分析一下上面的圖code

首先從動物開始對象

  • 動物是一個類 動物依賴氧氣和水
  • 而後鳥繼承了動物,因此鳥的父類是動物 因此鳥是屬於動物
  • 而後鳥和翅膀是組合關係 一隻鳥有兩個翅膀
  • 大雁鴨子和企鵝都是鳥因此繼承了鳥類
  • 大雁會有大雁羣,大雁羣是由大雁組成因此是聚合關係
  • 企鵝和睦候是關聯關係由於企鵝須要依賴氣候
  • 而後再看大雁 大雁會飛翔 因此就實現了飛翔接口
  • 唐老鴨是屬於鴨子的 因此唐老鴨繼承了鴨子這個類

上圖是借鑑了大話設計模式裏面的圖。下面具體介紹各個箭頭符號的做用blog

首先介紹圖形繼承

類通常是用三層矩形框表示,第一層表示類的名稱,第二層表示的是字段和屬性,第三層則是類的方法。第一層中,若是是抽象類,需用斜體顯示。

### 包

包(Package):是一種常規用途的組合機制。在UML中用一個Tab框表示,Tab裏寫上包的名稱,框裏則用來放一些其餘子元素,好比類,子包等等。

接口

接口(interface): 接口包含操做但不包含屬性,且它沒有對外界可見的關聯

關係

依賴

依賴(Dependency):表示的是類之間的調用關係。UML中用帶箭頭的虛線表示依賴關係,而箭頭所指的則是被依賴的類。

泛化

泛化(Generalization):表示的是類之間的繼承關係,注意是子類指向父類。UML中用帶空心三角箭頭的實線表示泛化關係,箭頭指向的是通常個體。

關聯

關聯(Association):表示的是類與類之間存在某種特定的對應關係。UML中用雙向帶箭頭的虛線表示關聯關係,箭頭兩端爲相互關聯的兩個類。

聚合

聚合(Aggregation):是關聯關係的一種特例,表示的是總體與部分之間的關係,部分不能離開總體單獨存在。UML中用空心菱形頭的實線表示聚合關係,菱形頭指向總體

組合

組合(Composition):是聚合的一種特殊形式,表示的是類之間更強的組合關係。UML中用實心菱形頭的實線來表示組合,菱形頭指向總體。

類符號

以上就是類圖之間的關係符號,還有就是在類中+號是什麼意思,其實不光有+號。

看上面的學生類裏面有五個屬性和兩個方法

  • +號表示公共的 public
  • -表示 私有的 private
  • #表示protected

帶下劃線表示靜態屬性,通常表示方法+ 屬性:類型。

下面是方法符號與上方相同+表示公共方法括號內表示參數:後面是返回類型沒有默認表示無返回值。

工具推薦

若是使用的是IDEA的話是直接能夠看UML圖的,只不過會有一點變化。理解了上面的關係這些變化也能看的懂。

而後選擇

而後就顯示出來,也能夠直接在包上面右鍵查看包下面的關係。或者能夠下載億圖 ,以上圖都是使用億圖所畫。

相關文章
相關標籤/搜索