設計模式之UML類圖
UML簡介
Unified Modeling Language (UML)又稱統一建模語言或標準建模語言。
類:
從上到下分為三部分,分別是類名、屬性和操作,其中類名是必須要有的。
類如果有屬性,則每一個屬性都必須有一個名字,另外還可以有其它的描述資訊,如可見性、資料型別、預設值等。
類如果有操作,則每一個操作也都有一個名字,其它可選的資訊包括可見性、引數的名字、引數型別、引數預設值和操作的返回值的型別等。
下面這個是Hero類的表示:
有一個private屬性name,型別為String,一個public屬性level,型別為int,一個protected屬性blood,型別為float。
有一個public方法setName(String name),一個public方法getName(),一個抽象public方法abstractOperate().
介面:
介面有二種表示形式,一種是加interface關鍵字的類,一種是圓圈。
下面表示一個介面Shape,方法為public的draw():
類圖關係
1.實現
指的是一個class類實現interface介面(可以是多個)的功能;實現是類與介面之間最常見的關係;在Java中此類關係通過關鍵字implements明確標識,在設計時一般沒有爭議性;
空心三角+虛線:
此例子表示為ShapeA和ShapeB實現介面Shape:
2.泛化(繼承)
指的是一個類(稱為子類、子介面)繼承另外的一個類(稱為父類、父介面)的功能,並可以增加它自己的新功能的能力,繼承是類與類或者介面與介面之間最常見的關係;在Java中此類關係通過關鍵字extends明確標識,在設計時一般沒有爭議性
空心三角+實線:
此例子表示為子類son繼承父類father:
3.關聯
他體現的是兩個類、或者類與介面之間語義級別的一種強依賴關係,比如我和我的朋友;這種關係比依賴更強、不存在依賴關係的偶然性、關係也不是臨時性的,一般是長期性的,而且雙方的關係一般是平等的、關聯可以是單向、雙向的;表現在程式碼層面,為被關聯類B以類屬性的形式出現在關聯類A中,也可能是關聯類A引用了一個型別為被關聯類B的全域性變數,換句話說就是成員變數的程式碼體現。
普通箭頭+實線:
此例子表示為A類關聯B類,也就是A類有一個成員變數為B類的引用:
4.聚合
聚合是關聯關係的一種特例,他體現的是整體與部分、擁有的關係,即has-a的關係,此時整體與部分之間是可分離的,他們可以具有各自的生命週期,部分可以屬於多個整體物件,也可以為多個整體物件共享;比如計算機與CPU、公司與員工的關係等;表現在程式碼層面,和關聯關係是一致的,只能從語義級別來區分;
普通◇+實線+普通箭頭:
此例子表示為汽車類由輪胎和發動機組成,也就是汽車類由輪胎和發動機聚合而成:
5.組合
組合也是關聯關係的一種特例,他體現的是一種contains-a的關係,這種關係比聚合更強,也稱為強聚合;他同樣體現整體與部分間的關係,但此時整體與部分是不可分的,整體的生命週期結束也就意味著部分的生命週期結束;比如你和你的大腦;表現在程式碼層面,和關聯關係是一致的,只能從語義級別來區分;
實心◇+實線+普通箭頭:
此例子表示為人是由大腦和四肢組成:
6.依賴
可以簡單的理解,就是一個類A使用到了另一個類B,而這種使用關係是具有偶然性的、、臨時性的、非常弱的,但是B類的變化會影響到A;比如某人要過河,需要借用一條船,此時人與船之間的關係就是依賴;
表現在程式碼層面,為類B作為引數被類A在某個method方法中使用,區域性變數,方法的引數,靜態方法的呼叫;
虛線+普通箭頭:
此例子表示為A類依賴B類,B類的一個物件在A類的方法operate中作為引數呼叫:
各種關係強弱順序:
泛化=實現>組合>聚合>關聯>依賴
參考:
1.UML總結4—UML九種圖關係說明
http://blog.csdn.net/chenyujing1234/article/details/8173519
相關文章
- Javascript 設計模式之物件導向與 UML 類圖JavaScript設計模式物件
- 物件導向設計的設計模式(一):建立型模式(附 Demo & UML類圖)物件設計模式
- 設計模式不得不知道的 UML 類圖設計模式
- 物件導向設計的設計模式(三):行為型模式(附 Demo & UML類圖)物件設計模式
- 物件導向設計的設計模式(二):結構型模式(附 Demo & UML類圖)物件設計模式
- Java設計模式(一):設計模式概述、UML圖、設計原則Java設計模式
- UML設計:類圖說明及一步一步製作UML類圖
- 從零開始單排學設計模式「UML類圖」定級賽設計模式
- UML類圖--類之間的關係
- UML類圖
- 【設計模式】設計模式學習筆記之(一)——類圖、物件之間的關係及設計模式概要設計模式筆記物件
- 團隊溝通利器之UML——類圖
- 設計模式-UML關係基礎設計模式
- UML類圖詳解
- 物件導向設計的六大設計原則(附 Demo & UML類圖)物件
- 學習高校課程-軟體設計模式-OOP 和 UML 類圖 OOP 與 Java(lec1)設計模式OOPJava
- 設計模式 --建類神器之建造者模式設計模式
- 詳解建造者模式(含圖例、UML類圖、原始碼示例等)模式原始碼
- 看懂UML類圖和時序圖時序圖
- UML 之 各種檢視簡介 & UML類圖幾種關係的總結
- UML類圖繪製例項
- 設計模式:抽象工廠模式,結合類圖秒懂!設計模式抽象
- Java設計模式-類之間的關係Java設計模式
- 一篇文章帶你瞭解設計模式原理——UML圖和軟體設計原則設計模式
- 透過一份經典的UML類圖來學會如何讀懂UML類圖
- UML圖之協作圖(通訊圖)
- 一文掌握介面卡設計模式,UML圖解原始碼簡單易懂設計模式圖解原始碼
- 五分鐘讀懂UML類圖
- 設計模式之單例設計模式設計模式單例
- 設計模式之命令模式設計模式
- 設計模式之-命令模式設計模式
- 設計模式之代理模式設計模式
- 設計模式之【策略模式】設計模式
- 設計模式之Plugin模式設計模式Plugin
- 設計模式之策略模式設計模式
- 《設計模式》之代理模式設計模式
- JavaScript設計模式之建立型設計模式JavaScript設計模式
- 一.設計模式之工廠設計模式設計模式
- UML類圖介紹&類的六大關係