UML類圖和關係

UML類圖是面向對象系統建模中最經常使用和最重要的圖,是定義其它圖的基礎。類圖主要是用來顯示系統中的類、接口以及它們之間的靜態結構和關係的一種靜態模型。數據結構

類圖基本元素

類、接口、關係,只簡單介紹一下這三種元素。spa

類是對具備相同屬性和行爲的對象,抽象出來的一種數據結構,是面向對象設計的核心結構。圖示以下:
設計

類名、屬性、行爲三部分組成。對象

    • 類名格式:字符串
    • 屬性格式:可見性 名稱:類型 [ = 缺省值 ]
    • 行爲格式:可見性 名稱(參數列表) [ : 返回類型]
    • 參數格式:類型 名稱
    1. 可見性:表示元素對於類外的元素而言是否可見,包括公有(public)、私有(private)和受保護(protected)三種,在類圖中分別用符號+、-和#表示。
    2. 名稱:標識名,用字符串表示。
    3. 類型/返回類型:表示數據類型,能夠是基本數據類型,也能夠是引用數據類型。
    4. 缺省值:是一個可選項,園所默認值。
    5. 參數:多個參數用逗號「,」分隔。

    接口

    描述行爲的集合。圖示以下:
    繼承

    接口名和操做兩部分組成。接口

    • 接口名格式:字符串
    • 行爲格式:名稱(參數) [ : 返回類型]
    • 參數格式:類型 名稱
    1. 名稱:標識名,用字符串表示。
    2. 返回類型:表示數據類型,能夠是基本數據類型,也能夠是引用數據類型。
    3. 參數:多個參數用逗號「,」分隔。

    注:<<接口名>>中的尖括號不必定非要有。如實現關係就一種,接口的泛化關係只是標識行爲沒有屬性。生命週期

    關係

    類圖中的元素存在六種基本關係。分別是:實現,泛化,組合,聚合,關聯和依賴。ci

    類圖元素的關係

    實現(Realization)

    表示類對接口的實現操做,類具備接口的全部行爲。用帶有空心三角箭頭的虛線表示,箭頭指向接口。 實線圖示以下:
    rem

    泛化(Generalization)

    類或接口之間的繼承,表示通用與具體的差別。用帶有空心三角箭頭的實線表示,箭頭指向父類。圖示以下:
    字符串

    組合(Composition)

    總體與部分的關係,部分不能離開總體而單獨存在。總體和部分生命週期同樣,同生同死。用帶有實心菱形的實線表示,菱形指向總體。圖示以下:

    聚合(Aggregation)

    總體與部分的關係,部分能夠離開總體而單獨存在。總體對部分只是有使用權。總體和部分的生命週期是獨立存在的。用帶空心菱形的實心線表示,菱形指向總體。圖示以下:

    關聯(Association)

    同級類之間的引用,彼此不存在包含關係,引用者知道被引用者的屬性和行爲。關聯能夠是雙向的,也能夠是單向的。在Java語言中,關聯關係通常使用成員變量來實現。
    用帶普通箭頭的實心線表示,箭頭指向被引用者。圖示以下:

    依賴(Dependency)

    一個類的實現依賴另外一個類的數據。
    帶箭頭的虛線,指向被使用者。圖示以下:

    總結

    • 實現:類實現接口。
    • 泛化:類或接口之間的繼承。
    • 組合:結構上總體和部分不能分開,生命週期同樣,由總體維護。
    • 聚合:結構上總體和部分能分開,各自維護本身的生命週期。
    • 關聯:類之間存在使用和被使用關係。
    • 依賴:一個類用到另外一個類的數據。

    關係的強到弱順序:泛化 = 實現 > 組合 > 聚合 > 關聯 > 依賴。

    相關文章
    相關標籤/搜索