UML是統一建模語言,是一種可視化的面向對象建模語言,是一種用來對真實世界物理進行建模的標準標記,用圖形方式表現典型的面向對象系統的整個結構。html
若是把軟件看成房子,那麼類圖就是房子的施工圖了.數據庫
經過類圖,就能實際的把系統中的各個類,即對象描述清楚,下一步就是按照這個詳細的設計編碼了。設計模式
我用的是Enterprise Architect 12.1(如下簡稱EA)這個工具畫UML類圖的,這個工具十分強大,還能夠把數據庫的表逆向生成UML圖.Enterprise Architect下載工具
安裝成功後咱們來建立一個項目小試身手.學習
這裏的東西是模板自動生成的,能夠點擊看看,學習一下.我這裏都刪了,而後從新建立.編碼
建立一個類:.net
詳細頁設置屬性和方法:設計
設置屬性:3d
設置方法:code
一個類就建立好了:
再來個簡單的例子 : 咱們有一個動物的接口、狗的抽象類,還有一個泰迪的類,它們的關係是泰迪繼承狗的抽象類,狗的抽象類實現動物接口,它們都有一個公共的叫聲(cry)方法.
用UML類圖畫一下它們三個的關係.
如今咱們已經對類圖的基本結構、訪問修飾符在類圖的符號有了一個基本的瞭解,
接下來作一個進階一點的學習.
這是網友總結的UML類圖使用案例,很詳細,功能很全.
經過上面的圖對UML有一個總體的認識,接下來我會對UML類圖中的一下幾種關係爲你們作一個詳細的介紹:
定義: 泛化是一種繼承關係,繼承就是子類繼承父類的特徵和行爲,使得子類對象(實例)具備父類的實例域和方法,或子類從父類繼承方法,使得子類具備父類相同的行爲。
符號: 空心三角指向父類
示例: 泰迪是狗的一個種類,因此泰迪繼承狗.
定義: 是一種類與接口的關係,表現是類是接口全部特徵和行爲的實現
符號: 空心三角指向父類
示例: 狗是一種動物,因此狗實現動物的接口
定義:
關聯是一種結構關係,說明一個事物的對象與另外一個事物的對象相聯繫.
給定有關聯的兩個類,能夠從 一個類的對象獲得另外一個類的對象.
關聯有兩元關係和多元關係,兩元關係是指一種一對一的關係,多元關係是一對多或多對一的關係。兩個類之間的簡單關聯表示了兩個同等地位類之間的結構關係。
當你想要表示結構化關係時使用關聯。(能夠想一想數據庫表的關聯關係)
一般狀況下,關聯關係是經過類的成員變量來實現的.
符號: 箭頭指向被擁有者
示例: 一個公司僱員,公司與僱員之間就是一種關聯關係。
代碼:
//公司 public class Company { //一個公司僱員,公司與僱員之間就是一種關聯關係。 private Employee emp ; } public class Employee{ }
關聯關係還能夠細分爲聚合和組合兩種.
定義: 聚合表示一種弱的"擁有"關係,體現的是A對象能夠包含B對象,但B對象不是A對象的一部分.
符號: 空心菱形指向總體
示例: 雁羣包含大雁,可是大雁能夠脫離雁羣
定義: 組合是一種強的"擁有"關係,體現了嚴格的部分和總體關係,部分和總體的生命週期同樣 部分不能離開總體存在.
符號: 實心菱形指向總體
示例: 以驅趕劃分,人是由身體、四肢組成的,胳膊不能脫離人單獨存活.
定義: 依賴關係是一種使用關係,特定事物的改變有可能會影響到使用該事物的事物,反之不成立。在你想顯示一個事物使用另外一個事物時使用。
依賴關係的使用形式: 局部變量、方法的參數或者對靜態方法的調用
符號: 虛線箭頭指向被擁有者.
示例: 一般狀況下,依賴關係體如今某個類的方法使用另外一個類做爲參數,例如人類使用螺絲刀.
代碼:
//螺絲刀,做爲人類的工具,是用來被人類使用的 public class Screwdriver { } public class Person{ //擰螺絲,需使用螺絲刀 public void screw(Screwdriver src){ } }
大話設計模式