UML類圖簡介

導語

在一些框架講解、設計模式等技術帖子或者書中,經常出現UML圖。以自己的經歷來判斷,一般情況下,看到這些圖解都會選擇性忽視。這算是惰性,也沒有辦法;如果突然有一天,非要使用UML圖,那麼這篇文章可能會有所幫助。
這個是starUML的下載地址

接口和類的簡介

首先從最簡單的入手:接口

Class典型的UML示範

這裏寫圖片描述

從上到下分成了三個部分,分別是:

  1. 類名
  2. 屬性
  3. 方法

屬性和方法前面有#,-,+符號,分別表示:

  1. + –> public
  2. - –> private
  3. # –> protected

上面的UML圖,翻譯成Java代碼如下:

public class Person {

    private int age;
    protected String name;
    public int sex;

    private int getAge() {
        return age;
    }

    protected String getName() {
        return name;
    }

    public int getSex() {
        return sex;
    }

}

interface典型的UML示範

這裏寫圖片描述

《interface》很清楚地標明瞭這個是一個接口。上圖翻譯成Java代碼如下:

public interface CallBack {
    public void call();
}

繼承和實現

繼承

類與類之間的繼承用空心三角形+實線表示,例如:

這裏寫圖片描述

實現

類與接口之間的實現使用空心三角形+虛線表示,例如:

這裏寫圖片描述

如果在使用starUML,會發現沒有extends和implements相關的線條,因爲不同的語言,這種表述不太一致,所以一般軟件使用更加通用的名稱來表示,具體來說就是:

  1. Generalization(泛化)–>extends
  2. Realization(實現)–>implements

依賴、關聯、聚合和組合(Dependence、Association、Aggregation和Composition)

除了繼承(泛化)和實現以外,一般類與類的關係還包括依賴、關聯、聚合和組合
這幾種類與類之間的關係是有強弱之分的,可以大致排序爲:
泛化 = 實現 > 組合 > 聚合 > 關聯 > 依賴

依賴

依賴表示一個類的實現需要另一個類的協助,是類與類之間一種很弱的聯繫
表示方法:虛線+箭頭,箭頭指向被使用的對象
例如:
這裏寫圖片描述

學生爲了得到高分需要書本的協助,但這種協助的效果有限(這裏只是舉例子,不用較真)

關聯

關聯表示:一種擁有關係,一個類知道另一個類的屬性和方法
表示方法:單向關聯:實線+箭頭;雙向關聯:只有直線

例如:
這裏寫圖片描述

學生與老師之前是互動關係,是相互關聯的;學生可以選課、逃課、翹課……是單向關聯

聚合

聚合表示:一種整體與部分的關係,部分可以脫離整體而單獨存在
表示方法:使用空心菱形鏈接

例如:
這裏寫圖片描述

眼鏡可以離開人體而單獨存在。

組合

組合表示:一種整體與部分的關係,部分不能脫離整體而單獨存在
表示方法:使用實心菱形

例如:
這裏寫圖片描述

腿不能離開人體而單獨存在

ps:不同工具可能在聚合和組合的線段展示上不太一致,但最重要的菱形的空心與實心分別代表聚合和組合是一致的

結語

UML類圖的解讀並不複雜,只需稍微看下,就可以掌握。另外,如果想自己製作UML類圖,可以參考這篇文章。所使用的工具在這裏下載

轉載請標明出處:http://blog.csdn.net/qq_26411333/article/details/53507165

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章