UML類圖實例

參考博客:http://blog.csdn.net/xhf55555/article/details/6896316#comments
**已糾正上述博客部分錯誤

下面是類圖的實例(大話設計中有):
這裏寫圖片描述

UML中類圖實例
依賴:虛線+箭頭(動物和空氣的關係);
關聯:實線+箭頭(企鵝需要知道氣候才遷移);
聚合:空心菱形+實線+箭頭(雁羣和大雁的關係);
合成/組合:實心菱形+實線+箭頭(鳥和翅膀的關係);
泛化/繼承:空心三角形+實線(動物和鳥的繼承關係);
實現:空心三角形+虛線(實現大雁飛翔的接口),空心圓+直線(棒棒糖表示法,唐老鴨類實現了‘講人話’);

UML類圖

解釋UML類圖:

  1. 首先看“動物”矩形框,它代表一個類。該類圖分爲三層,第一層顯示類的名稱,如果是抽象類就要用斜體顯示。第二層是類的特性,通常就是字段和屬性。第三層是類的操作,通常是方法和行爲。
    *注意前面的符號,‘+’表示public, ‘—’ 表示private, ‘#’表示protected.
    這裏寫圖片描述
  2. “飛翔”矩形框表示一個接口圖,它與類圖的區別主要是頂端有《interface》顯示,第一行是接口名稱,第二行是接口方法。接口還有另一種表示方法,俗稱棒棒糖表示法,就是唐老鴨類實現了“講人話”的接口。
    這裏寫圖片描述

    interface IFly {
    voidFly();
    }

    interface Ilanguage {
    void Speak();
    }

  3. 動物,鳥,鴨,唐老鴨他們之間都是繼承的關係,繼承關係用空心三角形+實現來表示。
    這裏寫圖片描述

  4. “大雁”實現了“飛翔”接口。實現接口用空心三角形+虛線來表示。(注:下面的圖中應爲空心三角形)
    這裏寫圖片描述

    class Bird:Animal {
    //繼承動物類
    }

    class WideGoose:IFly {
    //實現IFly接口
    }

  5. 企鵝與氣候有很大的關係,企鵝需要“知道”氣候的變化,需要“瞭解”氣候規律。當一個類“知道”另一個類時,可以用關聯(association)關係。關聯關係用實線箭頭來表示。
    這裏寫圖片描述

    class Penguin :Bird {
    private Climateclimate;//在企鵝Penguin中,引用到氣候Climate對象
    }

  6. “大雁”和“雁羣”這兩個類。大雁是羣居動物,每隻大雁都屬於一個雁羣,一個雁羣可以有多隻大雁。所以它們之間就滿足聚合(Aggregation)關係。聚合表示一種弱的“擁有”關係,體現的是A對象可以包含B對象,但B對象不是A對象的一部分。聚合關係用空心的菱形+ 實線箭頭表示。
    這裏寫圖片描述

    class WideGooseAggregate {
    //在雁羣WideGooseAggregate類中,有大雁數組對象arrayWideGoose
    private WideGoose[]arrayWideGoose;
    }

  7. “鳥”和“翅膀”這兩個類。鳥和翅膀似整體和部分的關係,並且翅膀和鳥的生命週期是相同的,在這裏鳥和其翅膀就是合成關係。合成(composition)是一種強的“擁有”關係,體現了嚴格的部分和整體的關係,部分和整體的生命週期一樣。合成關係用實心的的菱形+實線箭頭來表示。另外,合成關係的連線兩端還有一個數字“1”和數字“2”,,這被稱爲基數。表明這一端的類可以有幾個實例,很顯然,一個鳥應該有兩支翅膀。如果一個類可能有無數個實例,則就用“n”來表示。關聯關係,聚合關係也可以有基數的。
    這裏寫圖片描述

    class Bird {
    private Wing wing;
    public Bird() {
    //在鳥Bird類中,初始化時,實例化翅膀Wing,它們之間同時生成
    wing=new Wing();
    }
    }

  8. “動物”、“氧氣”與“水”之間。動物有幾大特徵,比如有新陳代謝,能繁殖。而動物要有生命,需要氧氣,水以及食物等。也就是說動物依賴於氧氣和水。它們之間是依賴關係(Dependency),用虛線箭頭來表示。
    這裏寫圖片描述

    abstract class Animal {
    public bolism(Oxygenoxygen,Water water) {
    }
    }

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